2017-01-11 61 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

可以使用sharedPreferences来存储您的柜台,检查每一个应用程序推出的价值 – Roljhon

+0

商店的推出数量INT的地方,并和增量,并检查它每次启动 –

回答

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并每次增加存储在其中的值。当值达到计数时,只需显示警报并重置sharedpreferences。

+0

SharedPreferences sharedPreferences; int count; sharedPreferences = getPreferences(0); int launchCount = sharedPreferences.getInt(“numRun”,0); launchCount ++; (); 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

您可以将开放计数SharedPreferences上的OnCreate活动

添加计数器。

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. 

     } 

我希望这个例子是帮助你。