gpt4 book ai didi

android - 如何循环服务?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:21:09 24 4
gpt4 key购买 nike

我的服务需要每分钟检查一些东西

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 秒重复一次。

感谢 vineetska、Janusz 和 inazaruk 建议使用处理程序。我还要感谢所有回答的人,非常感谢您的帮助。

最佳答案

在您的服务中创建一个线程并像这样放置 while 循环:

 new Thread(new Runnable(){
public void run() {
// TODO Auto-generated method stub
while(true)
{
Thread.sleep(60000)
//REST OF CODE HERE//
}

}
}).start();

关于android - 如何循环服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7117982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com