2011-07-30 15 views
4

フォアグラウンドのアクティビティを実行したいと考えています。そして、私は次のコードを使ってアクティビティマネージャを使ってこの情報を得ることができます。ユーザーに現在表示されているアクティビティを取得します

activityManager = (ActivityManager) FWCommon.getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); 
runningTaskInfoList = activityManager.getRunningTasks(1); 
componentName = runningTaskInfoList.get(0).topActivity; 

両方活動Aの)Iは、2つの活動AとBを有し、iはonResume(からこの上記のコードを呼び出すと仮定し、アクティビティAが起動する場合は、次のB.

  1. 問題です上記のコードは私にtopActivity = Aを与えるtopActivity = A
  2. 次に私はアクティビティAからBに移動し、上記のコードは私にtopActivity = Bを与えます
  3. 次に私はアクティビティから戻るに戻るAへとコード上記Bは再びtopActivity =代わりA.

Thxを Dalvin

+1

申し訳ありませんカスタムクラスコードを入れました。フォアグラウンドのアクティビティを取得するための次のコードを検討してください。アクティビティマネージャ=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); runningTaskInfoList = activityManager.getRunningTasks(1); componentName = runningTaskInfoList.get(0).topActivity; –

答えて

9

のBはRunningAppProcessInfoのリストを取得するために)(getRunningAppProcessesを使用してみてください、私を与えます。次に、各RunningAppProcessInfoを通過し、それがあればこれを行うことにより、フォアグラウンドでチェックします。詳細については、

List<ActivityManager.RunningAppProcessInfo> processes = manager.getRunningAppProcesses(); 
for (ActivityManager.RunningAppProcessInfo process : processes) 
{ 
    // Take a look at the IMPORTANCE_VISIBLE property as well in the link provided at the bottom 
    if (process.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) 
    { 
     // Put code here 
    } 
} 

クリックherehere

+1

はホーム画面にあるかどうかを確認する方法はありますか? –

関連する問題