2012年8月28日火曜日

自アプリケーションがTOPかどうか確認する方法(4)

ActivityのTaskListの順番を見るよりは、アプリケーションプロセスを見る方が正確だと思います。
ActivityManager#getRunningAppProcesses()で取得可能です。


処理:

  1. ActivityManagerから実行中プロセス情報一覧を取得
  2. 自アプリケーションが存在するかチェック
  3. プロセス情報(importance )の状態を確認する


ソースはこんな感じ。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void checkRunningAppProcess(){
    Log.e("","checkRunningAppProcess");
 
    ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
    List<runningappprocessinfo> processInfoList = am.getRunningAppProcesses();
    for( RunningAppProcessInfo info : processInfoList){
        if(info.processName.equals(getPackageName())){
            if( info.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND){
                // app is FOREGROUND
                Log.e("","app is FOREGROUND");
            }
        }
    }
}

0 件のコメント:

コメントを投稿