在每项活动中检查用户"登录"的Android最佳做法

sim*_*dam 3 android login android-activity

在我的应用程序中,用户需要在开始使用应用程序之前进行身份验证.我在startupActivity中有此代码

private boolean checkAuthentication() {
    SharedPreferences sp = getSharedPreferences(
            "com.simekadam.blindassistant", Context.MODE_PRIVATE);
    return sp.getBoolean("logged", false);
}

private void processStartup(){
    Log.d(TAG, "processing startup");
    if (checkAuthentication()) {
        Intent startApp = new Intent(getApplicationContext(),
                BlindAssistantActivity.class);
        startActivity(startApp);
    } else {

        Intent loginIntent = new Intent(getApplicationContext(), LoginActivity.class);
        startActivity(loginIntent);


    }
}
Run Code Online (Sandbox Code Playgroud)

它只是工作,但我需要在每个活动(在onStart或onResume方法)中检查它,但它会导致我的所有活动之间的代码重复.如何做到这一点的最佳方法是什么?我可以创建一个可以通过其他活动扩展的materactivity吗?

谢谢

Tom*_*n89 7

是的,你可以创建一个主Activity并使用"extends"继承它,但是如果我是你,我会调查AppState.

您可以创建一个扩展Application类的类.然后,您可以将其用于"全局"变量和状态.

查看此网页:http: //www.helloandroid.com/tutorials/maintaining-global-application-state