ボタン クリック リスナーから開始される非同期ジョブがあります。これは印刷の仕事なので、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();
}