如何只启动一次第一次设置活动

时间:2014-04-10 14:27:11

标签: android android-activity startup

我目前正在编写一个显示第一个安装活动的应用程序。

我怎样才能让这个FirstSetup.class活动第一次启动。在安装程序结束时,有一个按钮FinishSetupButton,它可以设置一个值1,该值指向MainActivity,不再显示第一个安装程序。

这怎么可能?

3 个答案:

答案 0 :(得分:1)

这是您需要做的事情:每次应用启动时都要在SharedPreferences中检查某个值。如果该值不存在,则这是第一次运行应用程序 - 执行需要执行的操作然后将值保存到SharedPreferences。如果该值存在,则表示这不是第一次运行应用程序。卸载应用程序时,此值将从SharedPreferences中删除,仅限FYI。以下代码需要在活动中。

static final String KEY_IS_FIRST_TIME =  "com.<your_app_name>.first_time";
static final String KEY =  "com.<your_app_name>";

...

public boolean isFirstTime(){
        return getSharedPreferences(KEY, Context.MODE_PRIVATE).getBoolean(KEY_IS_FIRST_TIME, true);
    }

...

这是将其保存到SharedPreferences的方法:

getSharedPreferences(KEY, Context.MODE_PRIVATE).edit().putBoolean(KEY_IS_FIRST_TIME, false).commit();

答案 1 :(得分:1)

您应该有一个控制活动,根据您保存的值选择要显示的布局或要运行的活动。

对于商店选项,您可以查看this并为您的案例选择最佳方法。

答案 2 :(得分:1)

我会使用SharedPreferences来存储这些数据:

    public static void setSettingsDone(Context context) {
    final SharedPreferences prefs = context.getSharedPreferences("YourPref", 0);
    final Editor editor = prefs.edit();
    editor.putBoolean("AlreadySetPref", true);
    editor.commit();
}

public static boolean isAlreadySet(Context context) {
    final SharedPreferences prefs = context.getSharedPreferences("YourPref", 0);
    return prefs.getBoolean("AlreadySetPref", false);
}

在之前的活动中,我会调用第二种方法。如果返回false,那么用户还没有设置sot我将启动Settings活动,在最后调用第一个方法,否则,我将启动MainActivity ...