Android:获得每项活动花费的时间

时间:2012-03-19 22:40:03

标签: android frameworks android-activity android-intent usage-statistics

首先,我不是在寻找在给定应用程序上花费的时间。已有“应用程序”,com.android.settings/.UsageStats以及AOSP frameworks/base/services/java/com/android/server/am/UsageStatsService.java等中的大量支持代码。

到目前为止,我检查过的代码似乎没有记录在特定<activity> s 上花费的时间。我曾想过以两种方式获取这些信息,但我觉得必须有更清洁,更简单的东西,它可以利用更多的现有代码。这些想法一直是:

  1. 对基础ActivityonPause()onResume()进行检测,以获取时间戳,并将信息记录到某个位置(可能是SQLite数据库。)
  2. Context课程进行检测,以便在startActivity()和朋友被召唤时进行记录。
  3. 那你觉得怎么样 - 比那些选择更好?提前谢谢!

1 个答案:

答案 0 :(得分:2)

  

那你觉得怎么样 - 比那些选择更好?

任何东西都比#2好,后者需要自定义固件。

#1是您在关闭AFAIK的API级别13的SDK中的唯一选项。

Application.ActivityLifecycleCallbacks中添加的API级别14(a.k.a.,Android 4.0),您可以通过registerActivityLifecycleCallbacks()上调用的Application注册(例如getApplicationContext())。我还没有使用过这些,但看起来你可以安排一个监听器收到来来往往的活动的通知,避免强迫你扩展一些常用的基础Activity类与你想要的日志记录。