![](/img/trans.png)
[英]Android StartActivityForResult and Finish (with video)
[英]Android finish() StartActivityForResult not working
我在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會調用父活動(主活動)的onActivityResult方法:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
if(resultCode == 5) {
finish()
}
}
我希望關閉該應用程序。 我得到的是Android調用onResume,然后調用onCreate方法,從頭開始啟動向導。 然后,如果從這個新向導中再次按回,則該應用程序將按預期關閉。
謝謝你的幫助!
試試這個而不是finish();
用於退出整個應用程序。
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
您先前在后台進行的活動可能在您的代碼中排在前台。
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.