32

アプリで問題が発生しています。以前に開いたアクティビティの履歴を一覧表示する方法を提供したいと思います。

2 つの潜在的な解決策があると思いますが、いずれかを達成するための安定した方法を見つけることはできません。

  • どういうわけかSDKの関数を使用します。getPackageManager() と getActivityManager() を使用してみましたが、適切な解決策が見つかりません
  • 独自の履歴を実装しますが、startActivity をオーバーライドする必要があります。アクティビティは他の複数の方法で開始できるため、実際にはそのようにはなりたくありません。

SDKの関数を使用してそれを行う方法はありますか?

どうもありがとう。

編集:

私は別の考えを持っています、それは少し違います。特定のアプリ (鉱山) へのある種のレシーバーを使用して「アクティビティの開始/終了」イベントをリッスンし、スタック履歴を追跡することは可能でしょうか?

4

4 に答える 4

22

SDKの関数を使用してそれを行う方法はありますか?

いいえ、申し訳ありません。

特定のアプリ (鉱山) へのある種のレシーバーを使用して「アクティビティの開始/終了」イベントをリッスンし、スタック履歴を追跡することは可能でしょうか?

API レベル 14 以降 (別名、Android 4.0+) のみをサポートする場合は、registerActivityLifecycleCallbacks()onを使用できます。Application

于 2012-12-02T22:43:40.340 に答える
6

次の方法を使用できます。

ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);

int sizeStack =  am.getRunningTasks(2).size();

for(int i = 0;i < sizeStack;i++){

    ComponentName cn = am.getRunningTasks(2).get(i).topActivity;
    Log.d("", cn.getClassName());
}

アクティビティ スタックのリストを取得します。

于 2012-12-03T05:08:03.380 に答える