首先,我不是在寻找在给定应用程序上花费的时间。已有“应用程序”,com.android.settings/.UsageStats
以及AOSP frameworks/base/services/java/com/android/server/am/UsageStatsService.java
等中的大量支持代码。
到目前为止,我检查过的代码似乎没有记录在特定<activity>
s 上花费的时间。我曾想过以两种方式获取这些信息,但我觉得必须有更清洁,更简单的东西,它可以利用更多的现有代码。这些想法一直是:
Activity
类onPause()
和onResume()
进行检测,以获取时间戳,并将信息记录到某个位置(可能是SQLite数据库。)Context
课程进行检测,以便在startActivity()
和朋友被召唤时进行记录。那你觉得怎么样 - 比那些选择更好?提前谢谢!
答案 0 :(得分:2)
那你觉得怎么样 - 比那些选择更好?
任何东西都比#2好,后者需要自定义固件。
#1是您在关闭AFAIK的API级别13的SDK中的唯一选项。
在Application.ActivityLifecycleCallbacks
中添加的API级别14(a.k.a.,Android 4.0),您可以通过registerActivityLifecycleCallbacks()
上调用的Application
注册(例如getApplicationContext()
)。我还没有使用过这些,但看起来你可以安排一个监听器收到来来往往的活动的通知,避免强迫你扩展一些常用的基础Activity
类与你想要的日志记录。