应用的运行时间包括在后台运行的时间吗?分情况讨论吧。
1.本应用的运行时间比较容易处理,在主Activity的onCreate和onDestory方法中获取当前时间,然后算时间差。这样做会把应用在后台的时间也算在内。
2.如果不把应用在后台的时间算在内的话,再写一个BaseActivity,所有Activity都继承它,在BaseActivity的onStart()和onStop()方法里获取当前时间,当按Home键时在最顶层Activity(记为B)的onStop方法中记录当前时间,当B Activity的onStart方法重新调用时再记录一个时间,算onStop和onStart方法的时间差,结果为应用在后台的时间,把算得的时间差存起来。当主Activity的onDestory方法调用时,算第一步获取的总时间,再减去后台运行的时间,就ok了。需要在程序中监听Home键的按下。
3.如果应用在后台时被系统杀了,这种情况下,顶层Activity的onStart方法就不再被调用了。需要把第二部算的总时间再减去顶层Activity的onstop和主Acitvity的onDestory方法的时间差。
另外,给楼主点建议,下次提问可以把问题描述的再清楚一点。那样会有更多人回答你的问题。 |