Android检查用户之前登录,否则启动登录活动

时间:2011-07-16 15:56:51

标签: android login

我希望登录活动在用户启动应用但尚未登录之前启动。如果之前已成功完成登录,则应用程序将跳过登录页面并移至MainMenu.java。 我现在拥有的是:

    public class Login extends Activity implements OnClickListener, TaskCompleteCallback{

     first_time_check();

...
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.configure);

    ...}

private boolean first_time_check() {    
    String first = mPreferences.getString("first", null);
        if((first == null)){
            Intent i = new Intent(Login.this, MainMenu.class);
             startActivity(i);
        }
        return false;
    }

...
        SharedPreferences.Editor editor = mPreferences.edit();
        editor.putString("first", value);
    ...

        editor.commit();        

        // Close the activity
        Intent i = new Intent(Login.this, MainMenu.class);
         startActivity(i);
    }           

但是我得到了FC。我是如何实现SharedPreferences的?

4 个答案:

答案 0 :(得分:14)

您的代码从不调用first_time_check(),因此在返回用户的情况下自动转发不起作用。

你可以在onCreate()

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    first_time_check();

    setContentView(R.layout.configure);

    ...}

因此,对于新用户,first_time_check()会将他转发到登录页面,否则 将显示当前布局,他可以继续在此页面上。

答案 1 :(得分:5)

您正在使用共享偏好设置。那很好。

此链接中有一个小例子。这可能会解决问题。

http://developer.android.com/guide/topics/data/data-storage.html

基本上,我没有看到你读过储值。您正在存储它然后提交它。但是没有代码在哪里阅读它。只有在您阅读它时,您才能决定必须启动哪个活动。你必须调用first_time_check()来解决这个问题。

希望我能帮到你。

答案 2 :(得分:1)

您可以在onSaveInstanceState()方法中保存日志详细信息,然后在活动重新启动时将其还原。例如在onRestore()内部。

答案 3 :(得分:1)

这可以通过两种方式完成。一种是将它们存储在全局变量中,二是将数据存储在共享首选项中。见this示例。