这其实很简单。使用 SharedPreference 或数据库。
在 OnCreate 期间,将 numberofTimes 计数器加 1 并提交。
OnCreate (Bundle bundle){
mPref = getPreferences();
int c = mPref.getInt("numRun",0);
c++;
mPref.edit().putInt("numRun",c).commit();
//do other stuff...
}
无论您启动应用程序还是恢复应用程序,都会调用 OnCreate,但当且仅当且仅当用户(或您)在应用程序上调用 finish() 时 isFinishing() 返回 true(并且它没有被管理器销毁)
这样,您只有在重新开始时才会增加。
the isFinishing() 方法 http://developer.android.com/reference/android/app/Activity.html#isFinishing%28%29在 OnPause 方法内部检查活动是否正在完成()或只是暂停。
@Override
protected void OnPause(){
if(!isFinishing()){
c = mPref.getInt("numRun",0);
c--;
mPref.edit().putInt("numRun",c).commit();
}
//Other pause stuff.
}
这涵盖了您的所有场景:
1. user starts app/activity (+1)-> finishes app, exit with finish()
2. user starts app (+1) -> pause (-1) -> returns (+1)-> finish
3. user starts app (+1) -> pause (-1) -> android kills process (0) -> user returns to app (+1) -> user finish.
在每个场景中,您只需在活动的每次“运行”时增加一次“运行次数”计数器