我正在实现一个在 Android 启动时启动的服务,它应该每 10 分钟扫描一次附近的蓝牙设备。当它发现设备时,它会做一些工作。此外,这种定期扫描应该在设备开启的整个过程中进行。我正在尝试安排 TimerTask,但我不明白如何使用它。我猜它应该启动这个服务并让服务完成工作,而不是在 TimerTask 的 run 方法中编写代码?我将如何从 TimerTask 启动服务,因为这似乎是解决我的问题的最简单方法,但 TimerTask 是 java.util 的一部分,而不是 Android 的类之一。
我刚刚找到了 Android 的 AlarmManager。我应该用那个吗?它可以启动服务吗?
到目前为止,我有这个,但我需要帮助:
类 Timer 扩展服务 { 私人处理程序 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() ?