これが私のプロセスと問題です:
このアプリケーションでは、メニューボタンをクリックします
このメニューからトグルボタンを押すと、非同期タスクが開始されます(30秒ごとにトーン音が鳴ります)。このタスクは、トグルがチェックされている場合は常に実行され、チェックされていない場合はキャンセルされます。この作業は、メニューウィンドウに留まっている限り、プロセスを開始および停止するのに問題ありません。
トグルボックスをチェックしてください!
ウィンドウがはがされてメニューが再び開かれると、トグルの保存状態がチェックされ、プロセスはまだ実行中です。しかし、私は非同期タスクのそのインスタンスへのアクセスを失ったと思います。トグルのチェックを外すとプログラムがクラッシュするのはなぜですか?
myTask.cancle(true); 参照が失われたように見える可能性があり、非同期タスクが空中に流れ出て、呼び出したり制御したりすることができなくなりました。
この状況で非同期タスクを取得してキャンセルするにはどうすればよいですか?
TL、DR; 1つのアクティビティから非同期タスクを生成したが(mTask = new ...)、そのアクティビティを終了した場合でも、どうすればmTaskにアクセスできますか?