を停止:は、その実行方法は、このようなものになります...私はサービスで実行中のスレッドを持っているAndroidのサービス
class Consumer implements Runnable {
public void run() {
while(!finished){
foo();
}
cleanUp();
}
...
}
を、私はサービスのonStartCommand
方法でスレッドを開始していますし、サービスが停止したら、私はそれをシャットダウンしたい。今度はスレッドを停止するために、私はtrue
(サービスのonDestroy
メソッド)にfinished
変数を設定しています。
public void onDestroy() {
...
finished = true;
...
}
(私はプログラムをデバッグしていたときに、それだけで正常に動作していることが判明 - >期待通りcleanUp
が呼び出されます)
それをデバッグすることなく、cleanUp
は呼び出されません。誰も私にこれを説明することはできますか?私の誤りはどこですか?ありがとう
完成した変数への非同期マルチスレッドアクセスは、おそらく問題の大きな部分です。 –