如何在按下按钮后保存图像uri?

时间:2018-01-16 13:08:03

标签: android

我想保存用户上传到ima​​geview的图片,但是我按回去活动被破坏图片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);

        }
    }

2 个答案:

答案 0 :(得分:0)

您的保存状态方法未被调用,因为系统从大头钉弹出此活动,导致您有意关闭。 (当你调用finish()时会发生同样的事情)。所以你应该覆盖onBackPressed方法并将这个url存储在某种内存缓存或持久缓存中(共享首选项,数据库,文件)

答案 1 :(得分:0)

要将URI发送回上一个活动,请转到startActivityForResult()

要将Uri永久保存在您的应用中,即使已关闭,请参阅shared preferences