我有一个对象坐在我正在使用的应用程序的内存中,按下按钮我做一个startActivityForResult并启动相机应用程序,所以我可以将照片附加到该对象。在我测试过的每一款手机/平板电脑上(约15左右),它完全正常,但出于某些原因,一旦相机应用程序启动,摩托罗拉Droid 3(CDMA版本),就像onDestroy被称为......即使在拍摄照片后它返回我的应用程序,内存中保存的所有变量也会被删除。有人可以指导我如何解决这个问题吗?
答案 0 :(得分:1)
我猜测正在发生的事情是相机应用程序使用了足够大的内存,而android需要这些内存来破坏暂停的活动。如果你看这个页面,
http://developer.android.com/reference/android/app/Activity.html
它很清楚地表明了这种可能性。
您在不同的设备上看到不同的行为,因为不同的设备将不同的应用程序加载到内存中并开始使用不同的内存量。
如果您需要在应用中保存状态,可以访问onSaveInstanceState()
和onRestoreInstanceState()
。这是一篇更详细地讨论它的帖子。
Saving Android Activity state using Save Instance State
总之,当您恢复活动时,不要依赖于相同的状态。如果你依赖于这种情况,你需要自己处理它。