我在 Android 中的 finish() 函数有问题:
我试图获得以下行为:当用户第一次午餐应用程序时,我想启动一个向导程序。我正在使用具有不同片段的 PageViewer。如果用户在第一页中按下后退按钮,我希望应用程序关闭。
这是我所做的:
在主要活动中,我检查用户是否第一次启动了应用程序。如果是这种情况,那么我开始一个新的活动(向导)
if(firstTime) {
// here activity is the main activity
Intent i = new Intent(activity, Wizard.class);
activity.startActivityForResult(i,0);
}
在向导活动类中,我重写了 onBackPressed 方法:
@Override
public void onBackPressed(){
if(pager.getCurrentItem() == 0) {
setResult(5);
finish();
} else{
// code
}
}
当调用 finish() 时,Android 会调用父 Activity(主 Activity)的 onActivityResult 方法:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
if(resultCode == 5) {
finish()
}
}
我期望的是应用程序将被关闭。我得到的是Android调用onResume,然后调用onCreate方法,从头开始启动向导。然后,如果从这个新向导中我再次按下,应用程序将按预期关闭。
谢谢你的帮助!