android重新加载程序,从被杀死的Android应用程序中恢复

发生了什么:

>我打开我的应用程序,然后按主页按钮离开它片刻.

>我进入设置>应用程序>管理应用程序>运行,在缓存的后台应用程序列表中找到我的应用程序,然后停止它.

>然后我按住主页按钮并在最近的应用程序列表中选择我的应用程序,然后再次运行它.

[注意:这些步骤只是我强迫测试人员看到的相同症状的方式 – 他们只是正常进出应用程序,而不是强迫它关闭.

它在我离开它的活动中打开,但处于不良状态.第一个问题是持有用户信息的内存消失了(如果应用程序被杀死则有意义).我通过使User类可序列化并将当前用户对象存储在onSaveInstanceState中,然后将其加载回onCreate来解决这个问题.同样,我不得不重新创建ClientConnectionManager以使网络再次工作.

“重新加载”活动运行得很好,我可以导航到并使用新创建的活动,但如果我按下后退按钮返回到我强行停止应用程序之前创建的活动,我会得到一个例外,说明用户类不存在(ClassNotFoundException,显然在执行unparcel时).

为什么会这样?应用程序被杀死时处理案例的正确方法是什么,但仍然知道在重新打开时要返回哪个活动?应用程序未运行但未完全关闭的状态名称是什么?

解决方法:

>您可以指定哪些活动将显示在“最近的应用”上,并确保仅包含主要活动或任何其他“安全”活动(android:excludeFromRecents)

>您可以通过在启动意图中查找FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY来识别“从历史发起”案例

标签:android

来源: https://codeday.me/bug/20190723/1512962.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值