2012-02-11 4 views
0

새로 안드로이드에 가입했습니다.스레드의 중복을 방지하는 방법은 무엇입니까?

나는 핸들러와 쓰레드와 관련된 한 가지를 구현 중이다.

내 응용 프로그램을 실행할 때 하나의 처리기가 만들어 실행됩니다.

괜찮 았지만 다른 응용 프로그램을 다시 실행합니다. 하나 이상의 처리기가 만들어져 실행되었습니다.

핸들러의 중복이 증가합니다. 어떻게 이것을 피할 수 있습니까?

답변

0

안드로이드의 모든 Applicationownprocess으로 실행되므로 걱정할 필요가 없습니다. OS은 그 자체를 보살 핍니다. 또한 Thread/Runnable을 사용하려면 Handler을 사용하는 것이 필요하지 않을 때 사용을 중지하고 계속 사용하면 작업이 완료되고 작업이 완료됩니다. 살펴볼 수 있습니다 Android Runtime

+0

acthually 내가 뭘하는지. alarm.in brodcast 수신기 클래스를 통해 매 1 분마다 하나의 brodcastreceiver 클래스를 호출합니다. 실행중인 하나의 hanler를 clalling하고 있습니다. 1 분 후에 다시 brodcast 수신기 클래스가 알람 관리자를 통해 호출합니다. 그 시간에 한 번 더 처리기가 만들어집니다. 안녕하세요. 나는 처리기의 중복을 제거합니다. – kiran

+0

방송 수신자, 무엇? 이것은 충분한 정보가 아닙니다. 오히려 질문을 업데이트해야합니다. –

+0

brodcasrreceiver 클래스는 1 분마다 호출됩니다. brodcastreceiver 클래스에서 하나의 핸들러를 구현하고 있습니다.이 클래스를 한 번 더 호출하면 더 많은 처리기가 하나 생성됩니다. 어떤 해결책도 나에게 도움이됩니다. 미리 감사드립니다. – kiran

0

모든 응용 프로그램은 실행 중에 실행하려면 onCreate()이고 응용 프로그램을 닫으면 onDestroy()이 실행됩니다. 일시 중지 (예 : HOME 버튼 누름)의 경우 재개시 onPause()onResume()을 실행합니다. 이 함수를 사용하여 스레드가 제대로 종료되거나 제대로 닫히는 지 확인할 수 있습니다. 예를 들면 :

boolean checkcondition = true; 
Thread t = new Thread() { 
    public void run() { 
     while(checkcondition) { 

     } 
    } 
}; 

public void onDestroy() { 
    checkcondtion = false; 
    super.onDestroy(); 
} 

이렇게하면 모든 프로세스가 종료됩니다.

+0

나는 brodcastreceviers class.it에 핸들러를 구현하고 있습니다. – kiran

관련 문제