Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android activitys中区分home按钮和back按钮的功能?_Android - Fatal编程技术网

在android activitys中区分home按钮和back按钮的功能?

在android activitys中区分home按钮和back按钮的功能?,android,Android,我有6个活动A,B,C,D,E,F。在这个活动中,A是登录后的登录活动。在这个活动中,我转到活动链B,C,D,E,F。在这个B,C,D,E,F活动中,每当用户按下“后退”按钮时,它将返回到上一个活动。如果用户在打开应用程序后按下“主页”按钮,它将再次询问密码是如何实现的。。??请帮帮我您可以在SharedReference中的某个位置保留一个布尔条件。在用户登录时,将其设置为true。查看问题的答案以检测是否按下了HOME。如果检测到HOME键,请将SharedReference中的boolea

我有6个活动A,B,C,D,E,F。在这个活动中,A是登录后的登录活动。在这个活动中,我转到活动链B,C,D,E,F。在这个B,C,D,E,F活动中,每当用户按下“后退”按钮时,它将返回到上一个活动。如果用户在打开应用程序后按下“主页”按钮,它将再次询问密码是如何实现的。。??请帮帮我

您可以在
SharedReference
中的某个位置保留一个
布尔
条件。在用户登录时,将其设置为true。查看问题的答案以检测是否按下了
HOME
。如果检测到
HOME
键,请将
SharedReference
中的
boolean
设置为
false
。在检测到
HOME
按钮的活动的
onResume
内,检查SharedReferences中的变量值。如果为false,则可以在所有其他活动的顶部打开登录活动,并删除堆栈中的所有其他活动


您不需要在按下后退按钮时执行任何特定操作。不过,如果要检测它,可以覆盖
onBackButtonPressed

首先,在清单中设置登录活动的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();
        }
    }