我的简单结构:
步骤:
startActivityForResult()
通过按钮转到B. Intent it = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
和startActivityForResult()
通过调用相机拍摄照片。onActivityResult()
。然后我单击按钮设置结果代码并关闭B. 但是,B已关闭,但A中的onActivityResult()
永远不会被调用。
如果我跳过拍摄照片的步骤,请单击按钮设置结果代码并关闭B.将成功调用A中的onActivityResult()
。
我对这两种情况感到困惑。请有人告诉我为什么会出现第一种情况?
非常感谢。
答案 0 :(得分:0)
当你的第一个活动被摧毁时发生了它。
答案 1 :(得分:0)
我试图复制你所描述的内容,但没有运气:
http://androidgecko.com/project.zip
看看并告诉我,如果我错过了什么。
知道当另一个应用程序进入前端时(在这种情况下为摄像头),android可能会杀死以前的进程以释放内存(甚至不是谷歌文档描述的活动,但整个PID)可能会导致您的问题。
当您从应用程序启动Gallery或Camera应用程序时,我已经看到过这种行为,特别是在旧手机上。
这就是为什么像Facebook这样的应用程序有自己的Gallery / Camera实现的原因之一(因此PID不会被杀死,因为它是前面的)。
但是..即使PID被杀了,你应该看到的是Activity娱乐,这意味着onCreate
savedInstanceState
不是null应该触发..然后onActivityResult
..
查看我的示例,让我知道如何重现您的问题。