我正在实现一个在 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() ?