특정 어플이 실행된 상태가 아니면 윈도우매니저를 이용해 특정 뷰로 화면을 가리려고 합니다.
어플이 실행되는 순간 발생되는 브로드캐스트가 없어서 백그라운드에서 스레드로 현재 실행되고 있는 앱이 어떤 것인지 계속해서 무한 검사하는 작업을 하려고 하는데 디버깅 돌려보니 백그라운드에서 계속 검사를 하긴 하는데 addview를 거쳐도 화면에 표시되지가 않습니다. 어떻게 해야하나요??
@Override
public int onStartCommand(Intent intent,int flags,int startId){
try {
Toast.makeText(getApplicationContext(), "onStartCommand 호출", Toast.LENGTH_LONG).show();
ActivityManager manager = (ActivityManager) getSystemService( Activity.ACTIVITY_SERVICE );
List<ActivityManager.RunningTaskInfo> list = manager.getRunningTasks(1);
final ActivityManager.RunningTaskInfo info=list.get(0);
HandlerThread handlerThread = new HandlerThread("android_handler");
handlerThread.start();
Handler handler = new Handler(Looper.getMainLooper());
new Thread(new Runnable() {
public void run() {
while(true) {
if (info.topActivity.getClassName().equals("com.example.jiinheo.momsee.LoadingActivity")) {
mWindowManager.removeViewImmediate(layout);
temp = null;
} else {
if (temp == null)
try {
mWindowManager.addView(layout, mParams);
}catch(Exception e){
e.printStackTrace();
}
temp = layout;
}
}
}
}).start();
}catch (Exception e){
e.printStackTrace();
}
return super.onStartCommand(intent,flags,startId);
}