도래울

[안드로이드] Android 에서 현재 화면 top 에 있는 activity 알아내기. 본문

개발/Android

[안드로이드] Android 에서 현재 화면 top 에 있는 activity 알아내기.

도래울 2016. 2. 5. 13:03

ActivityManager activityManager = (ActivityManager) mContext.getSystemService(mContext.ACTIVITY_SERVICE);
        List<RunningTaskInfo> info;
   info = activityManager.getRunningTasks(7);
         for (Iterator iterator = info.iterator(); iterator.hasNext();)  {
             RunningTaskInfo runningTaskInfo = (RunningTaskInfo) iterator.next();
             if(runningTaskInfo.topActivity.getClassName().equals("com.android.ABCApplication.ABCApplication")) {
                 Log.e("ABCApplication","ABCApplication is running");
                 return true;
             }
   }

 

쉽게 말하면 위에 getRunningTasks 에서 7개의 Acitivity 를 가지고 옵니다. 물론 실행중인 Activity 가 7개보다 적으면 실행되고 있는 모든 Activity 를 가지고 옵니다. 이렇게 가지고 온 Activity 에서 ABCApplication이 있으면 return true; 한 것입니다. 위에서 7 대신에 1을 사용하면 바로 최고 위에 실행중인 Activity 를 가지고 올 수 있는 것입니다.

다음과 같은 방법으로 패키지 및 패키지의 하위 클래스도 확인 할수 있습니다. 

String pkgName = runningTaskInfo.topActivity.getPackageName();
String className = runningTaskInfo.topActivity.getClassName();

if((pkgName.equals("com.company.android.app.ABCPackage"))&& (className.equals("com.company.android.app.ABCPackage.abc.ABCClass"))) {

..

.

.

. 어쩌구저쩌구..;;

}

Comments