小智 16
这其实很简单.使用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...
}
Run Code Online (Sandbox Code Playgroud)
无论您启动应用程序还是恢复应用程序,都会调用OnCreate,但isFinishing()返回true,当且仅当用户(或您)在应用程序上调用finish()时(并且它未被管理器销毁)
这样,只有在重新开始时才会增加.
在OnPause方法内部的isFinishing()方法,用于检查活动是完成()还是暂停.
@Override
protected void OnPause(){
if(!isFinishing()){
c = mPref.getInt("numRun",0);
c--;
mPref.edit().putInt("numRun",c).commit();
}
//Other pause stuff.
}
Run Code Online (Sandbox Code Playgroud)
这涵盖了您的所有场景:
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.
Run Code Online (Sandbox Code Playgroud)
每个场景只会在每次"运行"活动时增加"次数运行"计数器