Android 每次我进入主屏幕时都会终止我的应用程序

Android kills my app every time I go to home screen

我观察到以下行为:

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 使用也可以。这发生在不同的三星设备上。

如何找出原因?

当您刚安装旁加载应用程序时,这是三星启动器的问题。如果您在安装后点击“打开”,就会出现问题。它似乎与 Intent 类型和软件包安装程序有关。该应用程序没有被杀死,而是 a new instance is created (see here or here for similar problems and try the back button!). And it depends on how an app is opened. The Xamarin solution posted here 对我不起作用。

因为是比较小的问题,在现实生活中不会经常发生,所以解决方法是安装后不要直接打开app,出现如图的对话框。而是使用应用程序抽屉,然后一切正常。或使用其他设备制造商,如 LG,没有此问题。