我有一个非常无聊的问题。当我的应用程序进入后台时,有时该进程会被终止,如 LogCat 所示:
INFO/ActivityManager(187): Low Memory: No more background processes.
INFO/ActivityManager(187): Process com.app.myapp (pid 20681) has died.
INFO/WindowManager(187): WIN DEATH: Window{40592708 com.app.myapp/app.myapp.dashboard.Dashboard paused=false}
ERROR/InputDispatcher(187): channel '408b1d40 app.myapp/app.myapp.menus.products.Promotions (server)' ~ Consumer closed input channel or an error occurred. events=0x8
ERROR/InputDispatcher(187): channel '408b1d40 app.myapp/app.myapp.menus.products.Promotions (server)' ~ Channel is unrecoverably broken and will be disposed!
INFO/WindowManager(187): WIN DEATH: Window{408b1d40 app.myapp/app.myapp.menus.products.Promotions paused=false}
INFO/ActivityManager(187): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10100000 cmp=app.myapp/.Main } from pid 187
INFO/ActivityManager(187): Start proc app.myapp for activity app.myapp/.menus.products.Promotions: pid=20721 uid=10062 gids={3003, 1015}
然后,当我尝试通过任务切换器(长按主页)返回应用程序时,它会尝试返回上一个打开的活动......然后崩溃。
为什么它不从头开始打开,在整个应用程序关闭时打开 Main?
ERROR/InputDispatcher 错误并不总是出现。
更新:
问题是......应用程序已恢复,但其中下载的对象(作为哈希图)不是......所以当我访问它们时......我有“问题”......
更新 2:
如果应用程序包含我需要的数据或者它是否为空(在这种情况下它重新启动应用程序),我已经通过验证 BaseActivity 上的 onCreate (由其他所有扩展)来解决问题。
有没有更优雅的解决方案,或者至少有一种方法可以告诉设备如果应用程序被终止,我希望重新启动应用程序?
此链接有助于理解问题......并且知道如何存储来自应用程序的数据没有明确的答案:如何在 Android 中声明全局变量?
更新 3:
所以我专门问了一个关于如何正确保存应用程序数据的问题。这可能会帮助那些有同样问题的人:Android: Best way to save data stored in Application Singleton Class