2012-05-25 5 views
2

매초마다 프로세스를 죽일 수 있습니다 .i 프로세스가 시작된 후 매시간마다 해당 프로세스를 패키지 이름으로 계속 죽이는 타이머를 설정하려고합니다.매초마다 프로세스를 죽일 수 있습니까?

+0

신의 사랑을 위해, 왜 이것을 할 수 있습니까? 말도 안되는 배터리 소모로 인해 매초마다 앱을 계속 실행해야하므로 시스템 서명없이 더 이상 자신의 프로세스가 아닌 것을 죽일 수 있다고는 생각하지 않습니다. – kcoppock

답변

0
void appKiller() { 
String nameOfProcess = "location"; 
ActivityManager manager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE); 
List<ActivityManager.RunningAppProcessInfo> listOfProcesses = manager.getRunningAppProcesses(); 
for (ActivityManager.RunningAppProcessInfo process : listOfProcesses) 
{ 
    if (process.processName.contains(nameOfProcess)) 
{ 
    // Ends the app 
    manager.killBackgroundProcesses(process.processName); 
    break; 
}} 

을 사용하여 다른 응용 프로그램 프로세스 사용을 죽이는 스레드의 사용을 죽일

Thread thread = new Thread(); 
    //this you should do when you declare your thread after creating thread object. 
    thread.setDaemon(true); 

//입니다 appKiller에 대한 타이머 호출은 아래와 같습니다.

timer = new Timer("killTimer"); 
timer.schedule(oTimer, 1000 * 1l, 1000 * 1l); 
private TimerTask oTimer = new TimerTask() { 
    private void doWork() { 
     try { 
      appKiller(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
      @Override 
    public void run() { 

     doWork(); 
    } 
}; 
0

Java에서는 스레드를 죽이지 않아야합니다. . 당신이 할 수있는 일

는이

thread.interrupt(); 
thread = null; 

//

android.os.Process.killProcess(thread_id); 
+0

도움이 감사하지만 내 자신의 프로세스 나 스레드를 죽이고 싶지 않습니다.이 작업을 수행하여 다른 응용 프로그램과 다른 프로세스를 죽이고 싶습니다. – numerah

+0

응용 프로그램의 "thread_id"를 얻는 방법은 무엇입니까? – Criss

관련 문제