startActivityForResult(Intent, int)
で2回目のアクティビティを呼び出し、2回目のアクティビティでonBackPressed()
をオーバーライドし、setResult()
からRESULT_CANCELED
にする。最後に、第1回の活動でそれをキャッチするonActivityResult()
。
コード例:
活動1:
Intent i = new Intent(Activity1.this, Activity2.class);
startActivityForResult(i, 0);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
if (resultCode == RESULT_CANCELED) {
// user pressed back from 2nd activity to go to 1st activity. code here
}
}
}
活動2:
@Override
public void onBackPressed() {
setResult(RESULT_CANCELED);
finish();
}
研究[この回答](のhttp://のstackoverflow。 com/a/10493384/779408) – breceivemail
これは少し遅れますが、なぜonRestartは機能しませんか?わたしにはできる? – osrl