android 안드로이드 현재 activity 알아내기
android 안드로이드 현재 activity 알아내기
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"))) {
..
.
.
. 어쩌구저쩌구..;;
}
[출처] http://shadowxx.egloos.com/10489531