그러냐

현재 실행 중인 액티비티 얻어오기. 본문

android

현재 실행 중인 액티비티 얻어오기.

관절분리 2017. 6. 22. 16:31
반응형

살다보면 안드로이드에서 현재 실행 중인 액티비티를 알고 싶을 때가 있다.

아래의 함수는 현재 실행 중인 액티비티(백그라운드/포그라운드)의 리스트를 얻어올 수 있다.


void getRunActivity() {

ActivityManager activity_manager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

List<RunningTaskInfo> task_info = activity_manager.getRunningTasks(9999);

for(int i=0; i<task_info.size(); i++) {

Log.d(log_tag, "[" + i + "] activity:"+ task_info.get(i).topActivity.getPackageName() + " >> " + task_info.get(i).topActivity.getClassName());

}

}


<uses-permission android:name="android.permission.GET_TASKS"/>

퍼미션을 추가하자.


주의 할 점은 현재 실행 중인 어플의 이름이 아니라,

현재 실행 중인 액티비티의 정보라는 것이다.

즉, topActivity.getPackageName() 코드는 백그라운드/포그라운드 에서 실행 중인 어플의 현재 최상위 액티비티 정보를 가져온다.

만약 A라는 게임에서 광고가 나오고 있다면 이 정보는 광고의 액티비티 정보가 나온다는 점에 유의.


또한 안드로이드 매니페스트의 패키지 네임이 아니라, 해당 클래스가 속한 패키지 네임을 가져오는 것에 유의.



출처: http://codeticker.tistory.com/entry/Android-현재-실행-중인-액티비티-얻어오기 [CodeTicker]

반응형