Мой сервис должен проверять что-то каждую минуту и
while(true)
{
Thread.sleep(60000)
//REST OF CODE HERE//
}
не работает. Заблокировать приложение и попросить меня принудительно остановить его.
Я уверен, что проблема связана с циклом while, но я думал, что это единственный способ бесконечно повторять эту услугу всякий раз, когда выполняется метод onStart().
Любые предложения приветствуются.
ИЗМЕНИТЬ
Я исправил его, и в случае, если вам интересно, как выглядит код, как хорошо, вы идете:
@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 секунд в этом случае.
Я хотел бы поблагодарить винеетскую, Януша и иназарука за предложение использовать Handlers. Я хотел бы поблагодарить всех, кто тоже ответил, ваша помощь была очень оценена.