1

我编写了一个带有登录/注销逻辑的应用程序。登录后(设置用户并作为变量传递),用户可以最小化应用程序。

最小化代码:

Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(startMain);

当用户在第一个活动中单击应用程序图标时,我检查是否已设置用户并作为变量传递,如果它们是应用程序,则转到活动 2(下一个活动)。如果未设置,请转到登录界面。

一切正常,但有时应用程序会忘记用户并在最小化后通过,然后我进入登录界面......

就像清除缓存我不知道...帮助

4

2 回答 2

1

在 Android 中,您不能假设您的应用程序在进入后台时会保留在内存中,也不能假设它会留在前台(人们可能会按下 Home 键或弹出窗口)。您应该实现onPauseandonResume事件并将登录用户的详细信息存储在那里。每当您的应用程序进入后台并重新激活时,Android 都会分别调用这些方法。您可以使用在这些方法中获得的 SavedBundle 对象来存储数据。还可以在此处阅读有关应用程序生命周期的信息:http: //developer.android.com/reference/android/app/Activity.html

于 2013-11-04T13:34:24.717 回答
0

您应该使用 sharedPreferance 来存储登录用户和密码。下面是代码

private void storeUserPreferences(String key, String value) {
        SharedPreferences sharedPreferences = PreferenceManager
                .getDefaultSharedPreferences(this);
        Editor editor = sharedPreferences.edit();
        editor.putString("username", "xyz");
                editor.putString("pass", "123");
        editor.commit();
    }


private void loadUserPreferences() {
            SharedPreferences sharedPreferences = PreferenceManager
                    .getDefaultSharedPreferences(this);
             String pass =sharedPreferences.getString("pass","");
             String username=sharedPreferences.getString("username","");
             if(!TextUtils.isEmpty(pass)&&!TextUtils.isEmpty(username))
             {
                login.....success
             }
             else
             {
                  redirect to login screen
               }



        }

这是参考文档http://developer.android.com/reference/android/content/SharedPreferences.html

于 2013-11-04T13:38:27.100 回答