5

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

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

  1. 检测基ActivityonPause()onResume(), 以破解时间戳,并在某个位置(可能是 SQLite 数据库)记录信息。
  2. 仪表类,在任何时候和朋友Context被叫到时做笔记。startActivity()

那么你怎么看——有什么比这些选项更好的吗?先感谢您!

4

1 回答 1

2

那么你怎么看——有什么比这些选项更好的吗?

任何东西都比#2 好,它需要定制固件。

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

API 级别 14(又名,Android 4.0)已添加Application.ActivityLifecycleCallbacks,您可以通过registerActivityLifecycleCallbacks()调用您的Application(例如,getApplicationContext())进行注册。我还没有使用这些,但看起来你可以安排一个监听器来通知活动的来来去去,避免强迫你Activity用你想要的日志记录扩展一些公共基类。

于 2012-03-20T00:18:07.550 回答