新しいアクティビティを開始するとき、現在のアクティビティを明示的に終了する必要がありますか、それともandroidがこれを処理しますか?
これは、アクティビティBを開始するためにアクティビティAに書き込んだものです。
Intent intent = new Intent(this, BActivity.class);
startActivity(intent);
上記の2行の後に次の行を呼び出してAを終了する必要がありますか?
this.finish()
新しいアクティビティを開始するとき、現在のアクティビティを明示的に終了する必要がありますか、それともandroidがこれを処理しますか?
これは、アクティビティBを開始するためにアクティビティAに書き込んだものです。
Intent intent = new Intent(this, BActivity.class);
startActivity(intent);
上記の2行の後に次の行を呼び出してAを終了する必要がありますか?
this.finish()
一般的に、あなたはすべきではありません。
違いは、アクティビティ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
いいえ、必須ではありません。
finish()
finishメソッドは、「アクティビティが完了し、閉じる必要があるときにこれを呼び出します。ActivityResultは、onActivityResult()を介して起動したユーザーに伝播されます。」と述べています。
参照リンク>>リンク
explicitly finish the current activity or does android take care this ?
アクティビティBから戻ってきたときにアクティビティAが必要な場合は、要件によって異なります。したがって、finishを呼び出す必要はありませんが、アクティビティBから戻ったときにアクティビティAが必要ない場合は、finish...を呼び出す必要があります。