最小化应用程序android

时间:2013-11-04 13:30:36

标签: java android android-intent login minimize

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

最小化代码:

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

当用户点击第一个活动中的应用图标时,我检查是否设置了用户并传递为vars,如果他们是app,则转到活动2(下一个活动)。 如果没有设置,请转到登录界面。

一切都运行正常但有时候app会忘记用户并在最小化后通过,我会进入登录界面....

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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