如果从ActivityB返回时需要ActivityA的特殊行为,则应使用startActivityForResult(Intent intent,int requestCode)而不是startActivity(Intent intent):
startActivityForResult(new Intent(this, ActivityB.class), REQUEST_CODE);
这样,您将能够通过重载onActivityResult(int requestCode,int resultCode,Intent intent)来检测ActivityB在ActivityA中的终止:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (requestCode == REQUEST_CODE) {
doRefresh(); // your "refresh" code
}
}
即使您通过按后退按钮终止ActivityB,这也有效.在这种情况下,默认情况下resultCode将是RESULT_CANCELLED.