2013-08-31 92 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会尝试 –