我的MainActivity开始了两个意图......

时间:2014-09-17 19:16:36

标签: android android-intent

我正在使用MainActivity启动我的应用程序。在此MainActivity中,我检查应用程序是否第一次启动..如果应用程序第一次启动,它应该启动WelcomeActivity。如果应用程序第一次启动LoginActivity时没有启动..

这是我的MainActivity的代码

    // First start - show welcome activity
    SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
    boolean firstStart = sp.getBoolean("configured", false);
    Log.d("MainActivity", "First:" + String.valueOf(firstStart));
    if (!firstStart) {
        // starts the WelcomeActivity
        Log.d("MainActivity", "starting WelcomeActivity");
        Intent intent = new Intent(this, WelcomeActivity.class);
        startActivity(intent);
        finish();
    }

    // account protected?
    //long accountId = sp.getLong("accountId", 0);
    long accountId = 0;
    if (accountId == 0 || !UserManagement.checkAccountProtected(accountId, this)) {
        // Show Login
        Intent intent = new Intent(this, LoginActivity.class);
        startActivity(intent);
        finish();
    }

现在..我的问题是我看到了WelcomeActivity,并在下一刻登录了LoginActivity ..有人可以告诉我为什么吗?

对我的英语感到抱歉......;)

PS:在其他两项活动中,我只展示了一些输入字段..

THX

2 个答案:

答案 0 :(得分:1)

首次启动后需要将cofigured设置为true作为布尔值 就像这样:

修改

  // First start - show welcome activity   
    boolean firstStart = sp.getBoolean("configured", false);
    Log.d("MainActivity", "First:" + String.valueOf(firstStart));
    if (!firstStart) {
        // starts the WelcomeActivity
        Log.d("MainActivity", "starting WelcomeActivity");
        Intent intent = new Intent(this, WelcomeActivity.class);
        startActivity(intent);
        finish();
    }else {
    PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean("configured",true).apply();   
    // account protected?
    //long accountId = sp.getLong("accountId", 0);
    long accountId = 0;
    if (accountId == 0 || !UserManagement.checkAccountProtected(accountId, this)) {
        // Show Login
        Intent intent = new Intent(this, LoginActivity.class);
        startActivity(intent);
        finish();
    }

}

答案 1 :(得分:0)

要使一切正常,您不仅需要检查configured,还需要设置。因此,在WelcomeActivity完成后,如果应设置configured,那么下次启动应用时,可以跳过欢迎