应用启动计数

Tus*_*kar 10 android

我正在开发一个应用程序,其中在用户打开应用程序5次之后,在第6次尝试时应用程序应该询问用户的反馈.我尝试使用Activity OnStart,OnResume但它没有运行,因为即使在离开并重新进入活动后,这些方法也会被调用.此外,根据Android功能,我不能退出应用程序,以便我可以从第一个被调用的活动中找到它.如何查找应用程序启动的次数?

我希望这不会令人困惑.

编辑

或者有一种方法,一旦用户按下主页退出应用程序,我总是可以从第一个活动(或例如,欢迎页面)恢复我的应用程序.

小智 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)

每个场景只会在每次"运行"活动时增加"次数运行"计数器