我正在处理一个应用程序,其中在用户打开应用程序的5倍之后,第6次尝试应用程序应该询问用户的反馈.我尝试使用Activity OnStart,OnResume,但它不工作,因为即使离开并重新进入活动,这些方法被调用.另外根据
android的功能,我不能退出应用程序,所以我可以从第一个活动中找到它.如何查找应用程序启动的次数?
我希望这不会令人困惑.
编辑
解决方法
这其实很简单.使用SharedPreference或数据库.
在OnCreate中添加1到numberofTimes计数器并提交.
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.
这样你只有在新鲜开始的时候才会增加.
一个OnPause方法里面的isFinishing() Method来检查一下活动是否正在完成()或刚刚被暂停.
@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.
每个场景,您只会在“运行”活动中增加“时间运行”计数器一次