我目前正在编写一个显示第一个安装活动的应用程序。
我怎样才能让这个FirstSetup.class活动第一次启动。在安装程序结束时,有一个按钮FinishSetupButton,它可以设置一个值1,该值指向MainActivity,不再显示第一个安装程序。
这怎么可能?
答案 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 ...