私は、Android起動時に起動するサービスを実装しており、近くのBluetoothデバイスを10分ごとにスキャンすることになっています。それがデバイスを発見するとき、それはいくつかの仕事をします。また、この定期的なスキャンは、デバイスがオンになっている時間の全体にわたって行わなければなりません。 TimerTaskのスケジュールを設定しようとしていますが、使用方法がわかりません。私はそれがこのサービスを開始し、TimerTaskのrunメソッドでコードを記述するのではなく、サービスに仕事をさせなければならないと思いますか? TimerTaskからサービスを開始するには、これが私の問題を解決する最も簡単な方法だと思われますが、TimerTaskはjava.utilの一部であり、Androidのクラスではありません。TimerTask Android Bluetooth
AndroidのAlarmManagerが見つかりました。私はそれを使うべきですか?サービスを開始できますか?
これまでのところ私はこれを持っているが、私は助けが必要です
class Timer extends Service { private Handler 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では、サービス {}
を拡張して申し訳ありませんが、私は、フォーマットがここでどのように機能するかを理解していません。
サービスのonDestroy()をオーバーライドする必要がありますか?どこで行うのですか?stopService()を使用しますか?
Handlerが自分のタイミングを管理できるとは思わなかった。私はこれをもう少し調べなければならないでしょう。私は唯一のクラスから別のクラスにメッセージを送ったと思った。 – user817129
さて、HandlerとRunnableを使用します。だから、私はRunnableでrun()メソッドを実装し、私はstartActivity()を呼び出すことができますか?またはサービスの開始方法を教えてください。 – user817129