Мой сервис должен проверять что-то каждую минуту и
while(true)
{
Thread.sleep(60000)
//REST OF CODE HERE//
}
не работает. Зависание приложения и его принудительное прекращение.
Я уверен, что проблема в цикле while, но я подумал, что это был единственный способ бесконечно повторять сервис всякий раз, когда выполняется метод onStart ().
Любые предложения приветствуются.
EDIT
Я исправил это, и на случай, если вам интересно, как выглядит код, вот так:
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
Toast.makeText(this, "Service running", Toast.LENGTH_SHORT).show();
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
Toast.makeText(protectionService.this, "5 secs has passed", Toast.LENGTH_SHORT).show();
}
};
new Thread(new Runnable(){
public void run() {
// TODO Auto-generated method stub
while(true)
{
try {
Thread.sleep(5000);
handler.sendEmptyMessage(0);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
}
Как правило, служба вызывается, и в этом случае задачи этой службы будут повторяться каждые 5 секунд.
Я хотел бы поблагодарить vineetska, Janusz и inazaruk за предложение использовать Handlers. Я хотел бы поблагодарить всех, кто также ответил, ваша помощь была высоко оценена.