2015-10-05 18 views
0

我想顯示一個警報對話框來更新應用程序的版本,如果安裝的版本比第一次更老,並且每使用5次應用程序之後。 以下代碼用於更新應用程序的版本。如何在android中添加計數器以顯示alertdialogue

try 
    { 
     PackageInfo packageInfo = getPackageManager() 
       .getPackageInfo(getPackageName(), 0); 
     String appVersion = packageInfo.versionName; 
     String latestVersion = getString(R.string.version); 
     if (!appVersion.equals(latestVersion)) 
     { 
      Dialog prefDialog = new AlertDialog.Builder(this) 
        .setTitle("New Version Available!") 
        .setMessage("Version " + latestVersion + " is available " + 
          "in the Android Market, please update!") 
        .setCancelable(true) 
        .setPositiveButton("Update", new DialogInterface.OnClickListener() 
        { 
         public void onClick(DialogInterface dialog, int id) 
         { 
          dialog.dismiss(); 

          String url = "market://details?id=packagename"; 
          Intent i = new Intent(Intent.ACTION_VIEW); 
          i.setData(Uri.parse(url)); 
          startActivity(i); 
         } 
        }) 
        .setNegativeButton("Later", new DialogInterface.OnClickListener() 
        { 
         public void onClick(DialogInterface dialog, int id) 
         { 
          dialog.dismiss(); 
         } 
        }).create(); 
      prefDialog.show(); 
     } 
    } 
    catch (PackageManager.NameNotFoundException ex) 
    { 
     ex.printStackTrace(); 
    } 

回答

0

可以在SharedPreferencesSQLite保持計數器變量.Show警報,當應用程序啓動每個time.Once值達到5遞增值,你就可以開始顯示AlertDialog。你可以把代碼爲AlertDialog內的循環,如果檢查值是否在類似SharedPreferences大於5

集計數器變量:

SharedPreferences prefs; 
SharedPreferences.Editor editor; 

sharedpreferences = getApplicationContext().getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

editor = prefs.edit(); 
     editor.putInt("count", count++); 
     editor.commit(); 

找回像你的計數器值:

public static final String MyPREFERENCES = "MyPrefs"; 
SharedPreferences prefs; 

prefs = getSharedPreferences("pref", Context.MODE_PRIVATE); 
int count = prefs.getInt("count", 0); 

//Check your count here... 
    if(your condition) 
     { 
     //Code for showing `AlertDialog` 
     } 
    else 
    //Do nothing 
+0

可以在這裏添加代碼。我試着用sharedPreferences我得到了nullPointerException和應用程序崩潰。讀取SharedPreferences的值時mPrefs = PreferenceManager.getDefaultSharedPreferences(context); – Archana

+0

您是否在SharedPreferences中設置了默認值? – Jas

+0

是使用下面的代碼我給SP值。 SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = mPrefs.edit(); editor.putInt(AppConstants.COUNT_PREF,0); editor.commit(); – Archana

相關問題