我有一个场景,用户可以单击后退按钮访问上一个活动或执行其他任何操作,活动将自行结束(例如来电,单击电源按钮,切换应用程序......)。这些调用必须将不同的结果返回给前一个活动(用 调用startActivityForResult
),根据将要采取的行动,它要么是优雅的退出,要么是混乱的......
现在,当 Android 调用时onBackPressed
,它也总是会调用onStop
,但不是相反。所以我希望我的应用程序在我打电话onBackPressed
而不打电话时完成,在里面onStop
打电话是行不通的。finish()
onBackPressed
一些代码来说明我的问题:
@Override
public void onStop() {
// this gets called no matter what, I don't like that
Log.i(TAG, "Canceled");
setResult(RESULT_CANCELED, new Intent());
finish();
super.onStop();
}
@Override
public void onBackPressed() {
Log.i(TAG, "User ended activity");
setResult(RESULT_OK, new Intent());
finish();
super.onBackPressed();
}