【问题标题】:Minimize application android最小化应用程序 android
【发布时间】:2013-11-04 13:30:35
【问题描述】:

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

最小化代码:

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

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

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

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

【问题讨论】:

    标签: java android android-intent login minimize


    【解决方案1】:

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

    【讨论】:

    • SavedBundle 对于在屏幕旋转之间保存数据很有用,但我认为 OP 在这种情况下必须以其他方式存储数据,例如通过SharedPreferences 或 SQLite。
    • 感谢@Piovezan,我想我对这个问题并不完全清楚 - 另请参阅我对 Hardik 下面帖子的评论。
    • 嗯,在我设置用户并通过后,我将活动置于暂停状态?
    【解决方案2】:

    您应该使用 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

    【讨论】:

    • 我不确定您是否要将其放入共享首选项中。如果它存储的凭据用于另一个系统,这将是正确的解决方案(例如,如果您的应用程序使用 Facebook,您可以将 Facebook 详细信息存储在共享首选项中)。但是,如果目的是使用用户在启动应用时必须输入的密码来保护您的应用(但不是在他们只是将其最小化时),那么这不是这样做的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多