Runnable ㄱ ㄱ
componentname == null || !CommonUtil.equals(componentname.getClassName(), "com.android.settingsaccessibility.SettingsAccessibilityActivity") && !CommonUtil.equals(componentname.getClassName(), "com.android.settings.Settings$AccessibilitySettingsActivity")
public static ComponentName getTopActivity(Context context)
{
context = ((ActivityManager)context.getSystemService("activity")).getRunningTasks(1);
if (context == null || context.isEmpty())
{
return null;
}
context = (android.app.ActivityManager.RunningTaskInfo)context.get(0);
if (context == null)
{
return null;
} else
{
return ((android.app.ActivityManager.RunningTaskInfo) (context)).topActivity;
}
}
//현재 실행중인 프로세스
ActivityManager actMng = (ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> list = actMng.getRunningAppProcesses();
String packageName = "";
for(RunningAppProcessInfo rap : list)
{
System.out.println("packageName = "+packageName+", importance = "+rap.importance );
if(rap.importance == rap.IMPORTANCE_FOREGROUND){
packageName = rap.processName;
System.out.println("packageName = "+packageName);
return;
}
}
getRunningTasks : 현재 deprecated 된 함수입니다.
getRunningAppProcesses : Activity 명까지는 얻어오진 못해도 현재 실행중인 프로세스 리스트를 알수있어요~!(패키지명)
RunningAppProcesses(rap) 여기서 IMPORTANCE_FOREGROUND 이거로 한번 걸러내면 현재 FOREGROUND 실행중인 앱 목록이 나옵니다. 거기서 본인의 앱의 패키지명과 일치한지 않한지 비교하면되겟네요~!
궁금하시면 저기 if문 밖에서 로그한번 찍어보시면 어떤정보가 어떤 순서로찍히는지 볼수있는지 알거에요.
System.out.println("packageName = "+packageName+", importance = "+rap.importance );
[출처] 안드로이드사이드 - http://www.androidside.com/bbs/board.php?bo_table=B49&wr_id=159456#c_159485
'모바일 > Android' 카테고리의 다른 글
깨달음 (2016.12.30) (0) | 2016.12.29 |
---|---|
TOUCH_EXPLORATION_ENABLED 관련 (0) | 2016.12.29 |
could not find method apt() for arguments.. (0) | 2016.12.28 |
android version (0) | 2016.12.28 |
Android 개발시 참조할 라이브러리 (0) | 2016.12.26 |