首先,我不是在寻找在给定应用程序上花费的时间.已有“应用程序”,com.android.settings / .UsageStats,以及AOSP框架/ base / services / java / com / android / server / am / UsageStatsService.java等中的大量支持代码.
到目前为止,我检查过的代码似乎没有记录在特定< activity>上花费的时间.我曾想过以两种方式获取这些信息,但我觉得必须有更清洁,更简单的东西,它可以利用更多的现有代码.这些想法是:
>检测基类Activity类onPause()和onResume(),以便在时间戳中进行黑客攻击,并将信息记录到某个地方(可能是SQLite数据库).
>检测Context类,每当调用startActivity()和friends时都要记下.
那你觉得怎么样 – 比那些选择更好?先感谢您!
解决方法:
So what do you think — anything better than those options?
一切都比#2好,这需要自定义固件.
#1是您在关闭AFAIK的API级别13的SDK中的唯一选项.
在Application.ActivityLifecycleCallbacks中添加了API Level 14(a.k.a.,Android 4.0),您可以通过在Application上调用的registerActivityLifecycleCallbacks()进行注册(例如,getApplicationContext()).我还没有使用过这些,但看起来你可以安排一个监听器收到来来往往的活动的通知,避免强迫你用你想要的日志记录扩展一些常见的基础Activity类.