안녕하세요, 안드로이드 초보 개발자입니다.
최상위화면을 주기적(0.1초)으로 확인하는 쓰레드를 돌리고 있습니다. (앱동작중일경우)
그래서 최상위화면으로 특정화면이 올라오면 감지하는건데요
다음과 같은 코드를 사용합니다.
ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> Info = am.getRunningTasks(
1
);
ComponentName topActivity = Info.get(
0
).topActivity;
String topactivityname = topActivity.getClassName();
원래 잘되는데... 특정단말에서 갑자기 안되네요 ㅠ 매번 안되는건 아니고 가끔안됩니다...
제가 A화면을 감지하고 있다고 치면요
다른화면을 보다가 A화면으로 오면 바로 감지가 되어야 하는데
쓰레드에서 찍는 로그를 보면 약 5초동안 이전화면이 최상위인걸로 감지가 됩니다.
그래서 혹시나 싶어서 adb로 확인을 해봤더니... adb는 즉각적으로 A화면이 찍히네요
(adb shell "dumpsys window|grep mCurrentFocus")
무엇이 문제인지 갈피를 잡을수가 없습니다 ㅠ
혹시 이에대해 아시는분 조언 부탁드립니다.