Android: получите время, потраченное на деятельность - PullRequest
4 голосов
/ 20 марта 2012

Во-первых, я не ищу время, потраченное на данное приложение. Уже есть «приложение для этого», com.android.settings/.UsageStats, и множество поддерживающего кода в AOSP frameworks/base/services/java/com/android/server/am/UsageStatsService.java и т. Д.

Код, который я исследовал до сих пор, похоже, не записывает прошедшее время, потраченное на конкретные <activity> с . Я думал получить эту информацию двумя способами, но чувствую, что должно быть что-то чище и проще, которое использует больше существующего кода. Идеи были:

  1. Инструментируйте базовые Activity класс onPause() и onResume(), чтобы взломать отметку времени, и зарегистрируйте информацию в каком-то месте (возможно, в базе данных SQLite).
  2. Инструмент класса Context, чтобы делать заметки при вызове startActivity() и друзей.

Так что вы думаете - что-нибудь лучше, чем эти варианты? Заранее спасибо!

1 Ответ

2 голосов
/ 20 марта 2012

Так что вы думаете - что-нибудь лучше, чем эти опции?

Что-нибудь лучше, чем # 2, который требует кастомной прошивки.

# 1 вашаЕдинственная опция в SDK для API уровня 13 на AFAIK.

API уровня 14 (он же Android 4.0) добавлен в Application.ActivityLifecycleCallbacks, который вы можете зарегистрировать через registerActivityLifecycleCallbacks(), который вызывается на Application (например,getApplicationContext()).Я еще не использовал их, но может показаться, что вы можете уведомить одного слушателя о приходе и уходе действий, не вынуждая вас расширять какой-либо общий базовый класс Activity с помощью желаемой регистрации.

...