0

私のアプリでは、Mainactivityでサービスを開始しています。アプリを開くたびにリマインダーポップアップを表示します。ただし、ポップアップを1回だけ表示したいと思います。

ポップアップの数を複数のアプリの起動に応じて保存するにはどうすればよいですか?

4

3 に答える 3

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
}

このコードは、アプリを再インストールしたり、アプリのデータを消去したりしない限り、一度だけ何かを表示します

説明:

OK、説明します。SharedPreferencesは、アプリケーションを削除しないまで保存されるプリミティブデータ(strings、int、boolean ...)を格納できるアプリケーションのプライベートスペースのようなものです。上記の私のコードはこのように機能します。アプリケーションを起動するとfalseのブール値が1つあり、ブール値がfalseの場合にのみポップアップが表示されます-> if(!mboolean)。ポップアップを表示したら、sharedPreferencesでブール値をtrueに設定すると、システムは次にそこでチェックし、trueであることを確認し、アプリケーションを再インストールするか、アプリケーションマネージャーからアプリケーションデータをクリアするまでポップアップを再度表示しません。 。

于 2013-03-26T12:07:08.070 に答える
1

ポップアップを押すときにこのコードを入れてください。

pref = PreferenceManager
            .getDefaultSharedPreferences(getApplicationContext());

    if (!pref.getBoolean("popupfirst", false)) {
        Editor editPref = pref.edit();
        editPref.putBoolean("popupfirst", true);
        editPref.commit();
    }

アプリが最初に起動してポップアップをプッシュすると、Preferenceにtrueが追加されます。それ以外の場合は、何もできません。

于 2013-03-26T12:09:19.130 に答える
0

SharedPreferencesに保存します。

たとえば、ポップアップを表示するときに、共有設定に保存します。

// 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();
于 2013-03-26T12:11:22.380 に答える