我想我需要一些帮助来理解Bundles是如何在Destroy上处理的。我的应用程序有一个问题,当一个bundle在一夜之间或超过几个小时关闭时,它变成了null。但是我不能为了调试的目的复制它。无论我做什么,在假定的强制破坏等之后,包裹仍然完好无损。
为了复制这个问题,我尝试了两种不同的方法:
Settings>Developer Options > Don't Keep activities。这两种方法似乎都没有删除Bundle。我是不是漏掉了什么东西,在一次所谓的完全毁灭之后,包裹是如何被保留下来的?
我用的是Nexus 5,android 4.4.2
我的“首选项”class中有一个检查,它首先检查Bundle变量是否可以从逻辑上的前一个/父级Activity中获得,如果不是从AndroidSharedPreferences读取的话。问题是,当我检查包不是null时,我必须有一个问题。因此,我需要调试它,因为它允许将空值从包设置到“会话”ID的
我是不是遗漏了什么?当然,捆绑包应该随着我的应用程序一起销毁,但是当使用上面的选项1)时,绑定仍然存在,所以我无法调试我的IF语句。选项2)没有用,因为停止按钮似乎只是关闭活动-我的应用程序退一步通过屏幕的层次结构,我点击停止。同样,没有从内存中销毁整个应用程序。我一定是错过了一些最基本的东西!
为任何帮助干杯。
顺便说一句,我已经找到了所有的解决方案,所以我可以,所有的一切似乎只是使用上面的光学没有问题,是不是有什么不同的与我的Android操作系统/手机?
编辑:谷歌的这篇文章展示了我需要的功能,但我认为这是一篇过时的文章,它指的是我在选项1中尝试的内容?-参见“立即销毁活动”- developer.android.com/tools/debugging/debugging-devtools.html
Edit2:参见下面的评论,我错误地认为上面的Google指的是从内存中删除整个应用程序,而不仅仅是一个活动。无论如何,现在我将尝试这样的方法来检查包的值
Long val = bundle.getLong(Navigator.INTENT_KEY_CHANNEL_ID, 0);
if (val != 0 && val != null) {
}发布于 2015-12-15 11:19:57
1-启动应用程序
2-按下家庭按钮
3-在Android或Eclipse中启动DDMS
4-选择应用程序并单击“停止”。
5-选择你的应用程序启动的应用历史
谢谢,
https://stackoverflow.com/questions/21814045
复制相似问题