1
단추 클릭 수신기에서 시작되는 비동기 작업이 있습니다. 그것은 하루 종일 반복적으로 일어날 인쇄 작업입니다. 스레드 나 개체가 누출되지 않는 인쇄 작업을 확인하고 싶습니다. 내 looper.mylooper.quit() 라인은 내가 필요로하는 모든 것입니까?루퍼/실행 파일을 죽이는 방법
리스너 코드는 다음과 같습니다
private final Button.OnClickListener cmdPrintOnClickListener = new Button.OnClickListener() {
public void onClick(View v) {
enableScreenForUse(false);
setStatus("Saving any changes");
saveButtonClicked();
TwoInchZebraDocket newDocket = new TwoInchZebraDocket(mRunDetailID, getContentResolver()); //could set this to final if we get problems -> see for details http://stackoverflow.com/questions/11424924/how-can-i-pass-an-object-to-a-new-thread-generated-anonymously-in-a-button-liste/11425012?iemail=1#11425012
setStatus("Creating docket for printing");
PrintRunnable target = new PrintRunnable(newDocket, CheckoutActivity.this);
new Thread(target).start();
}
};
실행 가능한 오브젝트 코드는 다음과 같습니다
public void run() {
Looper.prepare();
printDocket();
Looper.loop();
Looper.myLooper().quit();
}
나는 둘 다 시도했다. 그러나 어느쪽으로 든 looper.prepare()가 있어야한다. 그렇지 않으면 모바일 프린터에 대한 블루투스 연결이 실패한다. 어느 쪽이든 나는 아직도 누수가 있는지 여부를 알아야합니다. – WaterBoy