2017-01-11 13 views
0

この質問に尋ねられたかどうかはわかりませんが、見つけられませんでした。 アプリが起動されるたびに10回以上警告ダイアログが表示されます。10回の起動ごとに警告ダイアログを表示するには?

AlertDialog.Builder a_builder = new AlertDialog.Builder(MainActivity.this); 
a_builder.setMessage("Please take time and rate our application") 
.setCancelable(false) 
.setPositiveButton("Yes",new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
        Uri uri = Uri.parse("market://details?id=" + getApplicationContext().getPackageName()); 
        Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri); 

        goToMarket.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | 
          Intent.FLAG_ACTIVITY_NEW_DOCUMENT | 
          Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
        try { 
         startActivity(goToMarket); 
        } catch (ActivityNotFoundException e) { 
         startActivity(new Intent(Intent.ACTION_VIEW, 
         Uri.parse("http://play.google.com/store/apps/details?id=" + getApplicationContext().getPackageName()))); 
        } 

       } 
      }).setNegativeButton("Not Now",new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.cancel(); 
       } 
      }) ; 
    AlertDialog alert = a_builder.create(); 
    alert.setTitle("Rate Us !"); 
    alert.show(); 
+1

あなたのカウンターを保存し、すべてのアプリケーションの起動に – Roljhon

+0

店のどこかに打ち上げ番号のint型の値をチェックし、インクリメントし、それをすべての発売をチェックするsharedPreferencesを使用することができます –

答えて

1

共有設定に整数値を保存して、アプリの起動回数をカウントすることができます。
起動アクティビティのOnCreate()メソッドまたは(通知などの)アプリケーションへのエントリポイントである他のアクティビティの値を増やすことができます。
毎回ダイアログを表示した後に値をリセットする必要があります。
は、ここでは、コードの小片だ -

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); 
int appLaunchCount = pref.getInt("appLaunchCount",-1); 
    if(appLaunchCount==10){ 
     // code to show dialog 
     // reset 
     appLaunchCount=0; 
    } else { 
     // increment count 
     appLaunchCount = appLaunchCount+1; 
    } 
    SharedPreferences.Editor editor = pref.edit(); 
    editor.putInt("appLaunchCount", appLaunchCount); 
    editor.apply(); 
+0

上記の答えはうまくいくはずです。 –

+0

ええ、それは働いた、ありがとう – Vladimir

+0

喜んで助けることができました! :) –

5

sharedPreferencesを設定し、その値を毎回インクリメントします。値がカウントに達すると、alertを表示してsharedpreferencesをリセットします。

+0

SharedPreferences sharedPreferences; int count; sharedPreferences = getPreferences(0); int launchCount = sharedPreferences.getInt( "numRun"、0); launchCount ++; sharedPreferences.edit()。putInt( "numRun"、launchCount).commit(); if(lanuchCount%10 == 0){ //何かを実行 } – Vladimir

+0

このようにする必要がありますか? – Vladimir

+0

がほぼ正しいです。 –

1
 int count=0; 
int prefcount; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      count++; 
      SharedPreferences pref= PreferenceManager.getDefaultSharedPreferences(this); 
      SharedPreferences.Editor edit=pref.edit(); 
      edit.putInt("Count",count); 
      edit.commit(); 
      prefcount=pref.getInt("Count",-1); 
      if(prefcount>10){ 
       //show dialog 
      } 


     } 
} 
Hope this will help you. 
+0

私の友人は、10回後にダイアログが表示され、それが起動するたびに表示されるので、これは機能しません – Vladimir

+0

私はコードを編集しました。それを通過してください。 –

0

あなたはOnCreateの活性にカウンターを追加SharedPreferencesに

を開いた回数を格納することができます。

restoredCount ++ 
editor1.putInt("name", restoredCount); 
editor1.commit(); 

//カウンタは、私は、この例ではあなたを助けることを願う

SharedPreferences prefs = getSharedPreferences("user_count", MODE_PRIVATE); 
SharedPreferences.Editor editor1 = getSharedPreferences("user_count", MODE_PRIVATE).edit(); 
int restoredCount = prefs.getInt("name", 0); 



if (restoredCount == 10) { 
      editor1.putInt("name", 0); 
      editor1.commit(); 

      // Here Show Alert Dialog. 

     } 

値を取得します。

関連する問題