5

まず、特定のアプリケーションに費やされた時間を探しているわけではありません。すでに「そのためのアプリ」、com.android.settings/.UsageStats、および AOSPframeworks/base/services/java/com/android/server/am/UsageStatsService.javaなどの多数のサポート コードがあります。

これまで調べたコードは、特定<activity>の sに費やされた経過時間を記録していないようです。私はこの情報を 2 つの方法で取得しようと考えましたが、既存のコードを活用する、よりクリーンでシンプルな方法が必要だと感じています。アイデアは次のとおりです。

  1. タイムスタンプをハックして、どこかの場所 (おそらく SQLite データベース) に情報を記録するために、基本ActivityクラスonPause()と をインストルメント化します。onResume()
  2. クラスをインストルメント化して、友人が呼び出されるContextたびにメモを取るようにします。startActivity()

それで、あなたはどう思いますか?それらのオプションよりも良いものはありますか? 前もって感謝します!

4

1 に答える 1

2

それで、あなたはどう思いますか?それらのオプションよりも良いものはありますか?

カスタム ファームウェアを必要とする #2 よりも優れています。

#1は、AFAIKのAPIレベル13のSDK内で唯一のオプションです。

API レベル 14 (別名、Android 4.0) が に追加されました。これは、 (例: ) で呼び出してApplication.ActivityLifecycleCallbacks登録できます。これらはまだ使用していませんが、単一のリスナーがアクティビティの出入りを通知されるように調整できるように思われます。これにより、共通の基本クラスを目的のログで強制的に拡張する必要がなくなります。registerActivityLifecycleCallbacks()ApplicationgetApplicationContext()Activity

于 2012-03-20T00:18:07.550 に答える