簡體   English   中英

Android finish()StartActivityForResult無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM