0

Xamarin Droid でのアクティビティのライフサイクルに関する質問。写真の撮影に関する Xamarin のチュートリアルに従おうとしましたが、いくつかの問題に遭遇しました。この例では、カメラ インテントを呼び出してから、アクティビティのローカル ファイル プロパティに基づいて imageview onActivityResult を設定します。

問題1

最初の問題は、カメラ インテントを呼び出す前に設定されたローカル ファイル プロパティが常に null だったことです。プロパティ OnSaveInstanceState をペースラブルとして保存し、作成時に設定することで解決しました

protected override void OnSaveInstanceState (Bundle outState)
    {
        base.OnSaveInstanceState (outState);
        outState.PutParcelable("photoUri", photoUri);

    }

私が抱えていた2番目の問題は、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 を実行した後、OnActivityResult で設定された内容を連続してリセットする OnCreate を非常に迅速に実行する場合があるようです。imagelodader コードを onCreate 関数に複製しましたが、うまくいったようです。

私の質問は、それはちょっとずさんなようですが、私は何か間違ったことをしていますか? カメラ インテントから戻ったとき、および onActivityResult の後で、onCreate が起動する方法はかなりランダムに見えます。メモリが不足していて、アクティビティを再作成しているためですか? xamarin のサンプル コードがそのままでは機能しないのはなぜですか? _file ローカル変数がその状態を保持していないのは、彼らの間違いでしたか?

4

0 に答える 0