투케이2K

262. (AndroidStudio/android/java) 최상위 액티비티 (현재 실행 중) 클래스 명 확인 방법 - ActivityManager 본문

Android

262. (AndroidStudio/android/java) 최상위 액티비티 (현재 실행 중) 클래스 명 확인 방법 - ActivityManager

투케이2K 2022. 2. 11. 19:08

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : java

 

[소스 코드]

    // TODO [현재 사용중인 최상위 액티비티 명 확인]
    public static String getNowUseActivity(Context mContext){

        /**
         * 참고 : [특정 클래스에서 본인 클래스명 확인 방법]
         * getClass().getName()
         * */

        // [초기 리턴 결과 반환 변수 선언 실시]
        String returnActivityName = "";
        try {
            ActivityManager manager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);

            String className = "";
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
                className = String.valueOf(manager.getAppTasks().get(0).getTaskInfo().topActivity.getClassName());
            }
            else {
                List<ActivityManager.RunningTaskInfo> info = manager.getRunningTasks(1);
                ComponentName componentName= info.get(0).topActivity;
                className = componentName.getClassName();
            }
            Log.i("---","---");
            Log.w("//===========//","================================================");
            Log.i("","\n"+"[C_Util >> getNowUseActivity() :: 현재 사용 중인 최상위 액티비티 확인]");
            Log.i("","\n"+"[className :: "+String.valueOf(className)+"]");
            Log.w("//===========//","================================================");
            Log.i("---","---");

            // [리턴 반환 데이터 삽입 실시]
            returnActivityName = className;
        }
        catch (Exception e){
            //e.printStackTrace();
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"[C_Util >> getNowUseActivity() :: 현재 사용 중인 최상위 액티비티 확인]");
            Log.i("","\n"+"[catch [에러] :: "+String.valueOf(e.getMessage())+"]");
            Log.e("//===========//","================================================");
            Log.i("---","---");
        }

        // [리턴 결과 반환 수행 실시]
        return returnActivityName;
    }

반응형
Comments