我有一个简短的问题,我希望其他人有一个快速的答案:如果您启动活动A,然后使用startActivityForResult()启动活动B,那么当B完成并返回A可能已被GC控制的值(意图)时,是否存在这样的可能性?
我在某个地方读到这种情况可能发生,因此您不应该使用Intent.putExtras()将重要信息传回,因为它可能会丢失?相反,人们建议在sharedPreferences中保存状态,并在从A到B,然后从B返回到A时,只使用startActivity()
由于这个原因,我很想避免对我正在进行的项目进行重新编码,但是如果这是一个问题,我显然希望在发布之前处理它。
然而,如果这是可能的话,你就不能把A中的一些静态引用放在B中,从而进行硬引用,而不允许GC?
谢谢你们的帮助!
发布于 2011-08-20 12:59:23
如果A被摧毁了,它就会被重建。来自Android指南中的活动文件:
受保护的void onActivityResult (int requestCode,int resultCode,意图数据) 。。当您的活动重新启动onResume() 时,您将在紧接()之前收到这个调用。
这意味着将正常重新创建活动A(执行onCreate()、onStart()和onActivityResult(),如在活动生命周期中所述),并且您在活动B中设置的结果意图将被传递。
https://stackoverflow.com/questions/7128883
复制相似问题