如何根据应用程序是否第一次打开来显示不同的内容?

时间:2014-01-05 08:54:08

标签: android

如何根据应用程序是第一次打开还是用户设置某些内容来显示不同的内容?

想象一个活动A,B,如果用户第一次打开应用程序或者没有在活动B中设置某些内容,则显示活动B,否则显示活动A.

如何克服这个?谢谢。

2 个答案:

答案 0 :(得分:1)

使用PreferenceManager。在活动A中添加对首选项firstLaunch的检查。如果未设置,则启动活动B.然后,在活动B中,设置它。

它可能看起来像:

活动A

@Override
protected void onResume() {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    // By default assume "true", which means this is the first launch.
    if (prefs.getBoolean("firstLaunch", true)) {
        // Start Activity B and finish myself.
        Intent i = new Intent(getApplicationContext(), ActivityB.class);
        startActivity(i);
        finish();
    }
}

活动B

// Do it after you've initialized everything, so Activity A can be launched:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this)
SharedPreferences.Editor editor = prefs.edit();
// Set "fistLaunch" to "false", so Activity A will start next time.
editor.putBoolean("firstLaunch", false);
editor.commit();

答案 1 :(得分:1)

如果您想要显示不同的活动,如果用户第一次打开应用程序,第二次或第三次打开不同的活动等等,那么您可以使用以下方法。

您可以使用SharedPreference实现此目的。

在Splash Activity中检查这样的条件:

SharedPreferences preferences = getSharedPreferences("prefName", MODE_PRIVATE);
if(!preferences.getBoolean("isFirstRun", false)) {
    // This mean App Launch First Time
    SharedPreferences preferences = getSharedPreferences("prefName", MODE_PRIVATE);
    SharedPreferences.Editor edit= preferences.edit();

    edit.putBoolean("isFirstRun", true);
    edit.commit();
    // Open the B Activity
} else {
    // This mean App Launch Second or third ... time and start the A Activity
}