如何保持登录状态跳过启动器活动?

时间:2013-11-27 09:40:08

标签: android

我有一个indexActivity,有用户名和密码的编辑文本文本和一个登录按钮。当用户单击登录按钮时,将执行异步类(将通过服务器调用完成身份验证)。如果成功通过身份验证,则会使用意图启动homeActivity。

在宣言中,我将indexActivity设置为我的启动器Activity。

我想始终保持登录状态,我的意思是在登录后,当用户按下后退按钮应用程序将最小化,当它再次启动时,它可能应该转到homeActivity。

我听说过sharedPreference但我不知道如何在我的情况下使用它。我是android的新手,我对这个条件有疑问。所以请提供正确的方法来实现我的要求。

另一个疑问是,从身份验证结果我传递了一些具有意图的对象,并且在homeActivity中需要这些对象。那么我能做什么呢?

先谢谢

3 个答案:

答案 0 :(得分:2)

如你所说,你应该使用SharedPreferences,类似这样的

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
Editor editor = prefs.edit();
editor.put("login_data", the_api_token);
editor.commit();

这是用于保存打开的会话。现在,当indexActivity在onCreate方法上启动时,你应该检查这个参数。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
if (prefs.getString("login_data", null) != null ) {
    // Start next activity
}

在indexActivity中设置android:noHistory="true"选项应该很棒,所以当用户点击后退按钮时它永远不会返回indexActivity,它将退出到主屏幕。

编辑下一个疑问

每个没有实现Parcelable的自定义对象都不能通过意图传递,所以如果你需要在其他活动中获得一些对象而你想通过意图来实现它,你应该实现它。

这里有一些关于如何操作的指南。

  

http://developer.android.com/reference/android/os/Parcelable.html

希望有所帮助:)

答案 1 :(得分:0)

哦,我将详细解释你做一个会话类,在这里我们为这样的sharedPreference写一个代码

public class Session {

    private SharedPreferences prefs;

    public Session(Context cntx) {
        // TODO Auto-generated constructor stub
        prefs = PreferenceManager.getDefaultSharedPreferences(cntx);
    }


    public void setIslogin(boolean Islogin) {
        prefs.edit().putBoolean("Islogin", Islogin).commit();
        prefsCommit();
    }

    public boolean getIslogin() {
        boolean Islogin = prefs.getBoolean("Islogin", false);
        return Islogin;
    }
}
now when u first time login successfully  then just call `session.setIslogin(true);`

然后在启动画面中只提这样或者像这样检查

   Session session = new Session(this);
        boolean TimeToLoad = session.getIslogin();
          if(TimeToLoad)
        {
            Intent i = new Intent(this, AFTER_LOGIN_CLASS_NAME.class);
            startActivityForResult(i, 1);
        }

我想它会帮助你:)祝你好运

答案 2 :(得分:0)

您可以在发送和接收活动中查看intent.putExtra("key","value")intent.getExtra("key","value")方法来发送和接收值。

这是一个Android功能,您的应用程序将从您最小化的相同活动打开。您不必为其编写任何代码。 但是,如果您的应用程序长时间处于最小化状态,则Android本身会终止您的应用。