2013-08-31 127 views
-2

我有6個活動A,B,C,D,E,F。在這個A是在A活動中登錄後的登錄活動,我去了活動鏈B,C,D,E,F ..在這個B ,C,D,E,F活動,只要用戶按下返回按鈕,它將返回到先前的活動,如果用戶在打開應用程序後按Home按鈕,它將再次詢問密碼如何可能。請幫助我在Android活動中區分主頁按鈕和後退按鈕的功能?

回答

1

您可能會在SharedPreference某處保留boolean條件。在用戶登錄時,將其設置爲true。請參閱here的回答How can I detect user pressing HOME key in my activity?問題以檢測是否按下了HOME。如果檢測到HOME密鑰,則將boolean設置爲Sharedpreferencefalse。在檢測到HOME按鈕的活動內部onResume中,檢查SharedPreferences中的變量值。如果爲false,那麼您可以打開所有其他人的登錄活動並刪除堆棧中的所有其他人。

你不需要做任何特定的按鈕後退按鈕。雖然如果你想檢測它,你可以覆蓋onBackButtonPressed

+0

感謝ü爲您reply..i將嘗試 –

1

首先,使清單中的登錄活動的launchmode singleTask。

然後在你活動的中的onSaveInstanceState其餘請執行下列操作:

@Override 
    protected void onSaveInstanceState(Bundle outState) { 
     // TODO Auto-generated method stub 
     super.onSaveInstanceState(outState); 
     Log.d("TAG", "onSaveInstanceState"); 

     SharedPreferences preferences = getSharedPreferences("pref", 
       MODE_PRIVATE); 
     if (preferences.getBoolean("app", true) == true) { 

      Intent i = new Intent(SecondActivity.this, MainActivity.class); 

      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(i); 
      finish(); 
     } else { 

      preferences.edit().putBoolean("app", true); 
      preferences.edit().commit(); 
     } 
    } 
+0

感謝ü爲您reply..i會嘗試 –