-2

我有 6 个活动 A、B、C、D、E、F。在此 A 是登录 A 活动后的登录活动,我进入活动链 B、C、D、E、F ..在此 B、C ,D,E,F 活动每当用户按下后退按钮时,如果用户在打开应用程序后按下主页按钮,它将返回到上一个活动,它会再次询问密码怎么可能..?? 请帮帮我

4

2 回答 2

1

您可能会booleanSharedPreference. 在用户登录时,将其设置为 true。请参阅此处关于如何检测用户在我的活动中按下 HOME 键的答案?检测是否HOME被按下的问题。如果检测到HOME键,则设置boolean为。在检测到按钮的活动内部,检查 SharedPreferences 中的变量值。如果为 false,那么您可以在所有其他活动之上打开登录活动并删除堆栈中的所有其他活动。SharedpreferencefalseonResumeHOME

您无需在按下后退按钮时执行任何特定操作。虽然如果你想检测它,你可以覆盖onBackButtonPressed.

于 2013-08-31T06:03:42.813 回答
1

首先,在清单中创建登录活动的启动模式 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();
        }
    }
于 2013-08-31T06:40:58.880 回答