将活动属性保留在活动结果上



所以我正在研究几个Android相机的例子,其中我

  1. 生成文件 URI 并将其设置为类属性
  2. 然后调用相机意图,将文件 URI 作为参数传递
  3. 处理onActivityResult,然后通过从文件 URI 加载文件来显示保存的图像

我的问题是:在处理OnActivityResult时,文件 URI 属性为 null,即使它是在调用相机意图之前设置的。 我实现了 onSaveInstanceState() 方法并将属性保存到捆绑包中,然后将其加载onCreate - 这似乎已经解决了问题。 但是,这意味着我的活动onCreate在onActivityResult之前或之后被调用,并且我的属性正在重置。

由于官方 Android 示例没有实现onSaveInstanceState来保留该文件 uri 变量,我做错了什么吗? 当从相机意图触发onActivityResult时,在原始活动上调用onCreate是否正常? 我是否必须将活动设置为singleTop或类似的东西?

在我的情况下,从相机回来时没有调用onCreate,因此文件(或uri)仍然很好......

我只能想到两三种可能性:您自己在某处手动调用 finish,或者您正在测试的设备/模拟器内存不足并杀死您的活动,一旦摄像头处于前台,或者您的设备上有一些任务杀手杀死您的活动......?

所以,onCreate 不是,至少不是总是被调用,如果你想知道,如果你做错了什么,我想有必要发布你的代码。(尽管无论如何,像您一样处理问题似乎是个好主意)

最新更新