1

新しいアクティビティを開始するとき、現在のアクティビティを明示的に終了する必要がありますか、それともandroidがこれを処理しますか?

これは、アクティビティBを開始するためにアクティビティAに書き込んだものです。

Intent intent = new Intent(this, BActivity.class);
startActivity(intent);

上記の2行の後に次の行を呼び出してAを終了する必要がありますか?

this.finish()
4

3 に答える 3

8

一般的に、あなたはすべきではありません。

違いは、アクティビティAでfinishを呼び出す場合です。ユーザーがアクティビティBにいるときに、戻るボタンを押すと、アプリケーションを開く前に行っていたことに戻ります。代わりに、アクティビティAでfinishを呼び出さない場合、アクティビティAに戻ります。

終了を呼び出す場合:

Activity A -> Activity B -> [user press back] -> Homescreen (or whatever activity is on the stack below activity A)

終了を呼び出さない場合:

Activity A -> Activity B -> [user press back] -> Activity A
于 2012-07-04T17:06:03.977 に答える
2

いいえ、必須ではありません。

finish()

finishメソッドは、「アクティビティが完了し、閉じる必要があるときにこれを呼び出します。ActivityResultは、onActivityResult()を介して起動したユーザーに伝播されます。」と述べています。

参照リンク>>リンク

于 2012-07-04T17:09:02.653 に答える
1
 explicitly finish the current activity or does android take care this ?

アクティビティBから戻ってきたときにアクティビティAが必要な場合は、要件によって異なります。したがって、finishを呼び出す必要はありませんが、アクティビティBから戻ったときにアクティビティAが必要ない場合は、finish...を呼び出す必要があります。

于 2012-07-04T17:09:02.923 に答える