Android の起動時に開始するサービスを実装しています。これは、近くの Bluetooth デバイスを 10 分ごとにスキャンすることになっています。デバイスが検出されると、いくつかの作業が行われます。また、この定期的なスキャンは、デバイスがオンになっている間ずっと実行する必要があります。TimerTask をスケジュールしようとしていますが、使用方法がわかりません。TimerTask の run メソッドでコードを記述する代わりに、このサービスを開始して、サービスに作業を任せるべきだと思いますか? これが私の問題を解決する最も簡単な方法のようですが、TimerTask は java.util の一部であり、Android のクラスの 1 つではありません。
Android の AlarmManager を見つけました。私はそれを使うべきですか?サービスを開始できますか?
これまでのところ私はこれを持っていますが、助けが必要です:
クラス Timer は Service を拡張します { プライベート ハンドラー myHander;Runnable r = new Runnable() { run() { startService(new Intent(Timer.this.getApplicationContext() ,MyService.class));
myHandler.postDelayed(r,10 分); } }
onCreate() { myHandler=new MyHandler(); } onStartCommand() { //Do the bluetooth work.
r.run(); }
onDestroy() { super.onDestroy(); myHandler.removeCallback(r); }
} クラス MyService は Service { } を拡張します
申し訳ありませんが、ここでの書式設定の仕組みがわかりません。
サービスで onDestroy() をオーバーライドする必要がありますか? どこで stopService() を使用しますか?