我想保存用户上传到imageview的图片,但是我按回去活动被破坏图片uri被删除我该如何保留呢?
protected override void OnSaveInstanceState(Bundle outState)
{
base.OnSaveInstanceState(outState);
if (uri != null)
{
outState.PutParcelable("uri", uri);
}
}
protected override void OnRestoreInstanceState(Bundle savedInstanceState)
{
base.OnRestoreInstanceState(savedInstanceState);
uri = (Android.Net.Uri)savedInstanceState.GetParcelable("uri");
_imageView.SetImageURI(uri);
}
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.User_Account);
button.Click += ButtonOnClick;
if (savedInstanceState != null)
{
uri = (Android.Net.Uri)savedInstanceState.GetParcelable("uri");
_imageView.SetImageURI(uri);
}
}
答案 0 :(得分:0)
您的保存状态方法未被调用,因为系统从大头钉弹出此活动,导致您有意关闭。 (当你调用finish()时会发生同样的事情)。所以你应该覆盖onBackPressed
方法并将这个url存储在某种内存缓存或持久缓存中(共享首选项,数据库,文件)
答案 1 :(得分:0)
要将URI发送回上一个活动,请转到startActivityForResult()
要将Uri永久保存在您的应用中,即使已关闭,请参阅shared preferences