在我的应用程序中,我正在Mainactivity中启动服务。每次打开应用程序时都会显示提醒弹出窗口。但是,我只想显示弹出一次。
如何存储弹出式计数accros多个应用程序启动?
答案 0 :(得分:2)
boolean mboolean = false;
SharedPreferences settings = getSharedPreferences("PREFS_NAME", 0);
mboolean = settings.getBoolean("FIRST_RUN", false);
if (!mboolean) {
// do the thing for the first time
SharedPreferences settings = getSharedPreferences("PREFS_NAME", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("FIRST_RUN", true);
editor.commit();
} else {
// other time your app loads
}
此代码只显示一次,直到您不重新安装应用或清除应用数据
说明:
好的,我会向你解释一下。 SharedPreferences就像您的应用程序的私有空间,您可以在其中存储将保存的原始数据(字符串,int,布尔...),直到您不删除应用程序。上面的代码就是这样的,你有一个布尔值,当你启动应用程序时它是假的,只有当布尔值为假时你才会显示你的弹出窗口 - > if(!mboolean)。一旦你显示弹出窗口,你就在sharedPreferences中将boolean值设置为true,系统将在下次检查它,看到它是真的并且不会再显示弹出窗口,直到您重新安装应用程序或从应用程序管理器清除应用程序数据答案 1 :(得分:1)
按下弹出窗口时输入此代码。
pref = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
if (!pref.getBoolean("popupfirst", false)) {
Editor editPref = pref.edit();
editPref.putBoolean("popupfirst", true);
editPref.commit();
}
当您的应用首次启动并按下弹出窗口时,它会将其添加到Preference中,否则它无法执行任何操作。
答案 2 :(得分:0)
将其存储在SharedPreferences。
中E.g。在显示弹出窗口时将其保存在您的共享首选项中:
// Get the shared preferences
SharedPreferences prefs = getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
// Edit the shared preferences
Editor editor = prefs.edit();
// Save '1' in a key named: 'alert_count'
editor.putInt("alert_count", 1);
// Commit the changes
editor.commit();
然后,当您启动应用程序时,您可以再次提取它,以检查它之前启动的次数:
// Get the shared preferences
SharedPreferences prefs = getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
// Get the value of the integer stored with key: 'alert_count'
int timesLaunched = prefs.getInt("alert_count", 0); // 0 is the default value
if(timesLaunched <= 0){
// Pop up has not been launched before
} else {
// Pop up has been launched 'timesLaunched' times
}
理想情况下,当您保存在SharedPreferences中启动的次数时,您可以先提取它,然后再增加当前值..如下所示:
SharedPreferences prefs = getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
// Get the current value of how many times you launched the popup
int timesLaunched = prefs.getInt("alert_count", 0); // 0 is the default value
Editor editor = prefs.edit();
editor.putInt("alert_count", timesLaunched++);
editor.commit();