마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Intent로 외부 app 호출시 종료방법

0 추천
public void allKillRunningApps() {
        ActivityManager activity_manager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> app_list = activity_manager.getRunningAppProcesses();
        for(int i=0; i<app_list.size(); i++) {
            if(! PkgName[3].equals(app_list.get(i).processName)&&app_list.get(i).pid != android.os.Process.myPid()) {
                
                activity_manager.killBackgroundProcesses(app_list.get(i).processName);
                android.os.Process.sendSignal(app_list.get(i).pid, android.os.Process.SIGNAL_QUIT);
                android.os.Process.killProcess(app_list.get(i).pid);
            }
        }
        System.gc();
    }

Intent로 외부 앱을 호출하여 시간이 되면 다시 메인액티비티를 Clear on top으로 맨위로 올리고 killbackgroundprocess로 프로세스를 종료시켜도 메인액티비티실행이 끝나고 Back버튼 눌러서 나가보면 호출한 앱들이 그대로 대기하고있더군요. 이거 끄는 방법 없을까요? 프로세스에 킬명령을 보낸다든가, 킬프로세스로 지정해서 킬 해봤지만 소용이 없습니다.

마켓에서 받은 앱이라 패키지명은 아는데 프로세스를 끄는게 안되네요.

저번에 디스패치에 실패하고 적어도 종료라도 시키려고하는데 방법이 없을까요?

기반 OS는 4.4.4 킷캣입니다.

메인 액티비티를 재호출 할 때 Clear task도 실험해봤습니다만, 이때는 윈하는 대로 작동하지 않았습니다.

 

unlimited90 님이 2015년 4월 6일 질문

1개의 답변

0 추천
killProcess 가 잘 안먹는 경우가 많습니다.

실행중인 activity를 모두 가져와 루프 돌면서 종료하려는 패키지의 Activity면

activity.finish()로 종료 처리 하면 어떨까 합니다.
이드로이드 (22,930 포인트) 님이 2015년 4월 6일 답변
그럼 app_list.get(i).getActivity().finish(); 같이 적어서 처리하는걸 말씀하시는 거지요?
...