【发布时间】:2022-01-10 02:21:27
【问题描述】:
我观察到以下行为:
- 如果我通过
Recent按钮切换到另一个应用程序,然后再切换回我的应用程序,一切正常 - 如果我按下
Home按钮,然后从应用程序抽屉中打开我的应用程序,我的应用程序将重新启动
Android 版本似乎无关紧要。相反,安装类型会有所不同。如果我将 apk 复制到设备上并手动安装,我会得到上述行为。如果我改为使用 Visual Studio 并为 Release/Debug 构建它,它可以毫无问题地工作。应该是同一个apk文件!
Device log 会在应用被杀死时显示以下日志:
12-03 15:29:36.402 10719 10719 I SomeApp: ================ Xamarin: OnSleep()
12-03 15:29:36.410 1350 3999 E WindowManager: win=Window{cf46d1f u0 com.company.someapp/crc64cf5f37a7af23dc58.MainActivity} destroySurfaces: appStopped=true win.mWindowRemovalAllowed=false win.mRemoveOnExit=false win.mViewVisibility=8 caller=com.android.server.wm.AppWindowToken.destroySurfaces:1248 com.android.server.wm.AppWindowToken.destroySurfaces:1229 com.android.server.wm.AppWindowToken.notifyAppStopped:1284 com.android.server.wm.ActivityRecord.activityStoppedLocked:2776 com.android.server.wm.ActivityTaskManagerService.activityStopped:2512 android.app.IActivityTaskManager$Stub.onTransact:2280 android.os.Binder.execTransactInternal:1056
12-03 15:29:36.410 1350 3999 I WindowManager: Destroying surface Surface(name=com.company.someapp/crc64cf5f37a7af23dc58.MainActivity$_10719)/@0xe1a35ad called by com.android.server.wm.WindowStateAnimator.destroySurface:1834 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:733 com.android.server.wm.WindowState.destroySurfaceUnchecked:3642 com.android.server.wm.WindowState.destroySurface:3616 com.android.server.wm.AppWindowToken.destroySurfaces:1248 com.android.server.wm.AppWindowToken.destroySurfaces:1229 com.android.server.wm.AppWindowToken.notifyAppStopped:1284 com.android.server.wm.ActivityRecord.activityStoppedLocked:2776
12-03 15:29:36.411 820 1120 I Layer : id=2656 removeFromCurrentState com.company.someapp/crc64cf5f37a7af23dc58.MainActivity$_10719#0 (77)
12-03 15:29:36.413 820 1120 I SurfaceFlinger: id=2656 Removed com.company.someapp/crc64cf5f37a7af23dc58.MainActivity$_10719#0 (77)
AndroidManifest.xml 启动应用程序的设置是否错误?我在我的应用程序中使用android:launchMode="singleTop"。我还检查了电池节省,但行为没有改变。 RAM使用率也可以。这发生在不同的三星设备上。
我怎样才能找出造成这种情况的原因?
【问题讨论】:
-
这可能有多种原因。你有“不要保留活动”开发选项吗?您确定设备有足够的内存来同时处理两个应用程序吗?这是否发生在发布版本上?不幸的是,我不是 Xamarian 开发者,所以在这方面我帮不上什么忙!
-
我尝试关闭开发者设置,但行为相同。设备管理器说还剩 1.6 GB,所以这应该不是问题(我的应用程序使用 ~200 MB)。是的,它发生在 Release Build 上。我的猜测是存在 Android 错误配置或类似情况。感谢您的评论!
-
This happens on different Samsung devices.你在其他设备上测试过吗?
标签: android xamarin xamarin.android background kill