【问题标题】:Android kills my app every time I go to home screen每次我进入主屏幕时,Android都会杀死我的应用程序
【发布时间】: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


【解决方案1】:

这是三星启动器的问题,当您新安装了旁加载的应用程序时。如果您在安装后点击“打开”,则会出现问题。似乎它与Intent 类型和包安装程序有关。该应用程序没有被杀死,而是a new instance is created(请参阅herehere 了解类似问题并尝试返回按钮!)。这取决于应用程序的打开方式。 here 发布的 Xamarin 解决方案对我不起作用。

因为这是一个小问题,在现实生活中并不经常发生,解决方案是安装后不直接打开应用程序,显示对话框。而是使用应用程序抽屉,然后一切正常。或者使用没有此问题的其他设备制造商,例如 LG。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-03
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多