checkUpdate
このメソッド内に呼び出されるスレッドがあります。
public void onLocationChanged(Location location)
checkUpdate = new Thread() {
public void run() {
try {
// do some long staff using location variable
} catch (Exception e) {}
handler.sendEmptyMessage(0);
}
};
checkUpdate.start();
問題はonLocationChanged()
、スレッドが終了する前にメソッドがシステムによって呼び出されることです。これにより、アプリケーションで予期しない動作が発生します。
すでに実行されている場合など、スレッドを実行しない方法はありますか?
解決:
私は何が起こっているのか知っています、あなたはあなたの破壊活動を呼び出しlocationManager.removeUpdates(locationListener);
て設定する必要がありlocationManager=null
ます、さもなければアプリが閉じられても、サービスはまだ実行されて場所を取得しています。