6

私のアクティビティのonResume()は、それを開始したインテントからいくつかの「エクストラ」データを読み取り、それに応じてUIを更新します。

エラー処理を追加したいのですが、インテントのデータが欠落しているか破損している場合、アクティビティはトーストを表示して終了します。

onResume()メソッドでfinish()を呼び出すだけでいいですか?どちらもライフサイクルに関係しているので、思いがけないことが心配です。

他にもっと良い方法があれば、私もこれらに興味がありますが、上記は最も簡単なようです。

ありがとう!

4

3 に答える 3

5

アクティビティは、悪影響を与えることなく、いつでもfinish()を呼び出して自己終了することが安全です。

明らかに、finish()を呼び出す前に、必要な設定/データを保存したことを確認する必要がありますが、それは言うまでもなく、アクティビティの設計に基づく完全な責任です。

于 2011-05-10T16:35:19.420 に答える
1

呼び出しfinish()onResume()問題ないはずです。しかし、なぜではonResume()なくでエラー処理を行うのonCreate()ですか?

于 2011-05-10T15:29:04.753 に答える
0

、、またはfinish()から直接呼び出すと、予期しない結果が発生しました。これは、ストックAndroid4.4.2を搭載したNexus7でした。onActivityResult()onResume()onPostResume()

finish()私が見つけた解決策は、後でRunnable:を使用して呼び出すことでした。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        Handler handler = new Handler();
        handler.post(new Runnable() {
            @Override
            public void run() {
                setResult(RESULT_OK);
                finish();
            }
        });
    }
}
于 2014-04-28T12:55:20.077 に答える