android – 尽可能防止活动被破坏
作者:互联网
我有一个应用程序,一个包含片段的活动应用程序.
这个应用程序的通常用例是,你启动它并把电话拿走,不时,你回到手机并插入一些数据……这是一个日志应用程序,你正在做一些事情并插入你的结果进入应用程序…
我有问题,不时,我的活动被摧毁,并用空包重新创建……(大多数时候情况并非如此,但不时发生这种情况……).我的应用程序有时会启动服务,即使这种服务在这种情况下被杀死…
这意味着系统已杀死我的应用程序,是吗?我怎么能避免这个?
我需要保留用户数据和当前的顶级片段…并且它们被保存到捆绑包中,只要状态和数据得到保存,一切都会正常工作……
顺便说一句,我的活动始终是TOP ACTIVITY,只是屏幕经常关闭……我只想让我的活动尽可能长时间活着,直到用户离开后面的按钮……或者保存状态可靠
重要的提示
onSaveInstance并不总是有效(它不是生命周期的一部分,因此不能保证被调用)…它只能在大多数情况下工作…我需要一种方法来始终工作…如果android杀了我的应用程序. ..
解决方法:
不要将你的应用程序留在内存中
您不希望阻止Android杀死您的应用.你想要的是正确恢复你的应用程序的状态.然后,用户将永远不会注意到应用程序已被销毁,并且用户仍然可以获得在不使用时销毁的应用程序的好处.
如果你真的想要这个使用唤醒锁.这会耗尽你的用户电池,所以在实施这个之前我要三思而后行…在How do I prevent an Android device from going to sleep programmatically?的信息
onSaveInstanceState解释
为此,请检查bundle中需要哪些信息,并使用onSaveInstanceState(bundle:Bundle)方法保存该信息,以便在onCreate(sameBundle:Bundle)中重用它.
有关Google文档的更多信息,请参见Save your Activity state和Restore your Activity State.
关于Android Activity生命周期
正如@ prom85在下面的评论中所述,不能保证将调用onSaveInstanceState方法,因为它不是生命周期的一部分.解决方法是使用onPause生命周期钩子来确保存储数据.
更多信息,请访问Android: onSaveInstanceState not being called from activity
标签:android,android-activity,fragment,android-lifecycle 来源: https://codeday.me/bug/20190927/1824062.html