我正在實施一項服務,在Android啓動時啓動,它應該每隔10分鐘掃描附近的藍牙設備。當它發現設備時,它會做一些工作。此外,這種週期性的掃描應該在設備開機的整個過程中進行。我想安排一個TimerTask,但我不明白如何使用它。我想它應該啓動這個服務,並讓服務完成這項工作,而不是在TimerTask的run方法中編寫代碼?我如何從TimerTask啓動服務,因爲這似乎是解決我的問題的最簡單方法,但TimerTask是java.util的一部分,而不是Android的一個類。TimerTask Android藍牙
我剛剛找到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擴展服務 {}
對不起,我不明白的格式是如何在這裏工作。
我需要重寫Service中的onDestroy()嗎?我在哪裏使用stopService()?
我不知道處理程序可以管理我的時間。我將不得不再看看這一點。我只以爲它從一個班級發送消息到另一個班級。 – user817129
好的,我將使用Handler和Runnable。所以,我在Runnable中實現run()方法,然後我可以調用startActivity()?或者如何讓服務啓動? – user817129