簡體   English   中英

Android:關閉應用程序並從最近的列表中打開它

[英]Android: Closing the application and opening it from recent list

我知道這個問題在SO上已經問了很多遍了,所以花點時間在您否決它之前。 我已經經歷過如何從最近的應用程序列表中刪除應用程序?

退出申請-對此感到不滿意嗎?

關閉應用程序並從最近的應用程序中刪除

以及關於SO的許多其他問題。

在我的應用程序中,我將用戶登錄詳細信息存儲在SharedPreferences中。 基本上,當我的應用程序啟動時-活動A-啟動屏幕將在3秒后顯示。 然后將轉到活動B-用戶登錄頁面,按登錄后,憑據將存儲在SharedPreference中。 然后它將轉到活動C-主頁。 我不希望用戶每次輸入登錄詳細信息,因此我將其存儲在SharedPreference中,如果存在該值,則直接重定向到“活動C-主頁”。

所以流程是這樣的,

如果SharedPreference為空

A->B->C

如果SharedPreference中存在值

A->B->C, I'm checking in Activity B and when the values are present redirect it to C without making the B to come to front.

如果我從啟動器中打開應用程序,則一切正常。 但是,即使我在最近列表中打開它,即使SharedPreference中存在值,它也會轉到活動B。當我從啟動器或最近列表中打開它時,活動A(初始屏幕)不會顯示。 僅當我注銷並打開應用程序時,它才會顯示。 有什么問題嗎?

我厭倦了將<activity android:excludeFromRecents="true">放入,以免它不出現在最近的列表中。 即使在此之后,如果我從啟動器中打開它,它也會進入登錄頁面,即活動B。

我覆蓋了活動C上的后退按鈕

public void onBackPressed() {


    if (backPressedOnce) {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
        super.onBackPressed();
        return;
    }
    this.backPressedOnce = true;

    Toast.makeText(this, "Please press back again to exit.", Toast.LENGTH_SHORT).show();
    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            backPressedOnce = false; 

        }
    }, 3000);



} 

public void onResume()
{
    super.onResume();
    this.backPressedOnce = false ;
}

所以我有兩個問題

Q1)如何使啟動屏幕在用戶每次啟動時出現? Q2)如果從最新列表啟動,為什么即使SharedPreference具有值,它也不會重定向到活動C?

很抱歉問一個很長的問題,我知道這是不合適的。 謝謝

我會把我的想法...

  1. 為什么要檢查B中的sharedpreference呢? 如果您已存儲在sharedprefernce中,則將用戶從A直接重定向到C。

    if(sharedPreference)-> C

    否則B-> C

  2. 當您從最近的afaik啟動時,它將調用onresume而不是oncreate,而且我相信您正在簽入oncreate,因此從最近啟動時它不會執行,請使用日志了解周期,也請參閱活動生命周期。

  3. 如果您不需要該活動存在,則可以調用finish()並在清單中放入noHistory ='true'。

請看這些要點,如果我在任何地方錯了,請糾正我...

謝謝,希望對您有幫助...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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