关于 Xamarin Droid 中活动生命周期的问题。我试图按照 Xamarin 教程进行拍照,但遇到了一些问题。在示例中,它调用相机意图,然后根据活动的本地文件属性设置 imageview onActivityResult。
问题 1
我遇到的第一个问题是在调用相机意图之前设置的本地文件属性始终为空。我通过将属性 OnSaveInstanceState 保存为可调节然后将其设置为创建来解决了这个问题
protected override void OnSaveInstanceState (Bundle outState)
{
base.OnSaveInstanceState (outState);
outState.PutParcelable("photoUri", photoUri);
}
我遇到的第二个问题是 ImageView 有时会更新,有时不会 onActivityResult
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
ImageLoader.Instance.DisplayImage ("file://" + this.photoUri.Path, photo);
}
看起来它有时会运行 OnActivityResult,然后 OnCreate 非常快速地连续重置 onActivityResult 中设置的任何内容。我将 imagelodader 代码复制到 onCreate 函数中,这似乎奏效了。
我的问题是,这似乎有点草率,我做错了吗?当我们从相机意图返回并在 onActivityResult 之后,onCreate 有时如何触发似乎很随机。是因为它的内存不足并重新创建活动吗?为什么 xamarin 示例代码不能按原样工作, _file 局部变量不保持其状态是他们的错误吗?