2016-10-30 2 views
3

вот мой код, он работает, pls подскажите мне, какой код я должен писать для каждого пятого запуска, которое должно отображаться диалоговым окном, означает, что когда пользователь запускает приложение в 5 раз за один день, тогда должен отображать диалоговое окно для оценки приложения, так же каждый пятый запуск диалоговое окно должно быть показано.Как отображать диалоговое окно каждые 5 запусков за день?

public class MainActivity extends Activity { 


    String android_id,version,ver; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    //********************For Rating APP ********************** 
    SharedPreferences sharedPrefs = MainActivity.this.getSharedPreferences("RATER", 0); 

    SharedPreferences.Editor prefsEditor = sharedPrefs.edit(); 

    long time = sharedPrefs.getLong("displayedTime", 0); 
    if (time < System.currentTimeMillis() - 259200000) { 
     displayDialog(); 
     prefsEditor.putLong("displayedTime", System.currentTimeMillis()).commit(); 
    } 
} 

    //dialog box Function for rating app. 

private void displayDialog() { 
    // TODO Auto-generated method stub 
     DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      switch (which){ 
      case DialogInterface.BUTTON_POSITIVE: 
       //Yes button clicked 
        Intent in = new Intent(android.content.Intent.ACTION_VIEW); 
        in.setData(Uri.parse(url)); 
        startActivity(in); 
       break; 

      case DialogInterface.BUTTON_NEGATIVE: 
       //No button clicked 
       break; 
      } 
     } 
    }; 

    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
    builder.setTitle("Rate This App"); 
    builder.setMessage("You really seem to like this app, " 
       +"since you have already used it %totalLaunchCount% times! " 
       +"It would be great if you took a moment to rate it.") 
    .setPositiveButton("Rate Now", dialogClickListener) 
     .setNegativeButton("Latter", dialogClickListener) 
     .setNeutralButton("No,thanks", dialogClickListener).show(); 

    } 
    //End dialog box Function for rating app. 
    } 

Вот мой код на самом деле я хочу реализовать диалоговое окно рейтинг приложения в приложение, которое должно отображаться каждый запуск 5-й раз в день

+0

Вы сказали, что он работает тогда, какова фактическая проблема? –

+0

яр ее пятый запуск ре диалога шоу kerwana Chahta кп только вы @ ZainUlAbidin – user6405383

+0

@ZainUlAbidin бхаев ап dekhy dekhy таковой лаг rahy курица – user6405383

ответ

0

Вы можете получить Календаря значения и один счетчик, и сохраняет свое значение к предпочтениям.

Calendar rightNow = Calendar.getInstance(); 
int year = rightNow.get(rightNow.YEAR); 
int dayOfYear = rightNow.get(rightNow.DAY_OF_YEAR); 

int count = mPreferences.getInt("launchCount",0); 
int storedYear = mPreferences.getInt("storedYear",0); 
int storedDayOfYear = mPreferences.getInt("storedDayOfYear",0); 
if (storedYear == year && storedDayOfYear == dayOfYear) { 
    if (count == 5) { 
     //rate 
    } 
    count++; 
    mPreferences.edit().putInt("launchCount",count).commit(); 
} else { 
    mPreferences.edit().putInt("year",count); 
    mPreferences.edit().putInt("dayOfYear",count); 
    count = 1; 
    mPreferences.edit().putInt("launchCount",count); 
    mPreferences.edit().commit(); 
} 

Что-то вроде этого, не пробовал, но вы можете получить представление о ...

+0

, пожалуйста, вы можете обсудить со мной на skype, пожалуйста, ваше имя для скайпа пожалуйста @ drez – user6405383

+0

Этот код не работает @Drez – user6405383

1

Использование ниже метода проверки запуска графа.

private void checkLaunchCount() 
{ 
    int sessionUniqueId = mSharedPref.getInt("DATE_UNIQUE", 0); 
    int launchCount = mSharedPref.getInt("LAUNCH_COUNT", 0); 
    if(sessionUniqueId != 0) 
    { 
     int todayUniqueId = getUniqueNumberFromDate(); 
     if(todayUniqueId == sessionUniqueId) 
     { 
      if(launchCount >= 5) 
      { 
       //Show Dialog 
      } 
      else 
      { 
       updateLaunchCount(launchCount); 
      } 
     } 
     else 
     { 
      updateUniqueDateId(); 
      updateLaunchCount(launchCount); 
     } 

    } 
    else 
    { 
     updateUniqueDateId() 
     updateLaunchCount(launchCount); 
    } 
} 

Этот метод используется для getUniqueInt для Дата

private int getUniqueNumberFromDate() 
{ 
    Date date = new Date(); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(date); 
    return calendar.get(Calendar.DAY_OF_YEAR); 
} 

Этот метод использования, чтобы сохранить день в SharedPref

private static SharedPreferences mSharedPref; 
private void updateUniqueDateId() 
{ 
    if(mSharedPref == null) 
     mSharedPref = getActivity().getSharedPreferences(getActivity().getPackageName(), Activity.MODE_PRIVATE); 
    SharedPreferences.Editor prefsEditor = mSharedPref.edit(); 
    prefsEditor.putInt("DATE_UNIQUE", getUniqueNumberFromDate()).commit(); 
} 

Этот метод используется для сохранения подсчитывать в SharedPref

private void updateLaunchCount(int launchCount) 
{ 
    launchCount++; 
    SharedPreferences.Editor prefsEditor = mSharedPref.edit(); 
    prefsEditor.putInt("LAUNCH_COUNT", launchCount).commit(); 
} 
+0

он дает ошибку в этой строке по активности mSharedPref = MainActivity.getSharedPreferences (MainActivity(). getPackageName(), Activity.MODE_PRIVATE); @magesh pandian – user6405383

+0

Я написал getActivity(), но вы пишете MainActivity. что y его ошибка отображения. –

+0

Строка должна быть такой: mSharedPref = getActivity(). GetSharedPreferences (getActivity(). GetPackageN ame(), Activity.MODE_PRIVATE); –

Смежные вопросы