2011-11-03 18 views

答えて

0

私はそれがうまくいくかどうかわかりません...あなたは以前の活動に戻りたいですか?その場合は、前のアクティビティに戻る現在のアクティビティを終了します。

+0

私はアクティビティEでこれを見つけたいと思っています。このようなA、B、C、Dからナビゲートしました – azzits

+0

それでは、Rajdeep Duaが答えを持っています。 :P –

5

以下のコードは、

ActivityManager m = (ActivityManager) ctx.getSystemService(ctx.ACTIVITY_SERVICE); 
List<RunningTaskInfo> runningTaskInfoList = m.getRunningTasks(10); 
Iterator<RunningTaskInfo> itr = runningTaskInfoList.iterator(); 
while(itr.hasNext()){ 
    RunningTaskInfo runningTaskInfo = (RunningTaskInfo)itr.next(); 
    int id = runningTaskInfo.id; 
    CharSequence desc= runningTaskInfo.description; 
    int numOfActivities = runningTaskInfo.numActivities; 
    String topActivity = runningTaskInfo.topActivity.getShortClassName(); 
} 
+4

これはバックスタックと同じではありません。バックスタックは同じタスク内で複数のアクティビティを含むことができます。私はOPが求めていることをする方法がないと思う。 –

+2

また、これにはGET_TASK権限が必要です – for3st

+0

LOLLIPOP(sdk 21+)現在、これは推奨されておらず、セキュリティ上の理由から以前のバージョンで提供された情報のごく一部を返します – for3st

0

バックスタック内の各タスク内のすべてのタスクとトップアクティビティを抽出するために使用することができ、実際に、あなたはgetRunningTasks 、その後を使用してrunningtaskinfoからタスクIDを取得することができ、タスクIDを比較してgetRecentTasksを使用してrecenttaskinfoを取得します。 これで、starttivityを使用してrecenttaskinfoのbaseintentを使用してそのアクティビティを再開できます。

0

ためコマンド

が廃止されているか、あなたがここにあなたのアプリケーションに特別な権限を追加したくない場合は「adbのシェルdumpsys活動の活動を」使用することができますすべてのアクティビティがあなたのものであれば、別の解決方法です:シングルトンで識別子(アクティビティ自体がガベージコレクションの必要性がないことはありません)をマークすることができますStackLinkedListまたはLinkedHashSetonPause() a ddをスタックに追加し、onResume()で削除します。

これらのスタックの内容を確認して、作成されたアクティビティとシーケンスがあるかどうかを確認できます。

コードをクリーンアップして、すべてのアクティビティがアプリの共通の基本アクティビティから派生している場合は、手動で行うことができます。

0

startActivityの代わりにstartActivityForResultを使用し、起点/ソースのアクティビティを取得することをお勧めします。getCallingActivity()。getClassName()を呼び出します。

家から来たことをどうやって知っていますか? 使用getIntent()そのgetAction() - > android.intent.action.MAIN とgetCategories() - > android.intent.category.LAUNCHER

1

私はあなたが活動の変化を聞くことによってそれを行うことができると思います、registerActivityLifecycleCallbacksのこのAPIを介して:

https://developer.android.com/reference/android/app/Application.html#registerActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks)

https://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html

これは、あなた自身のクラスのスタックに追加するのに役立ち、そしてあなたが望むように、完全な状態が表示されます。

関連する問題