gpt4 book ai didi

android - 如何在特定时间启动服务

转载 作者:行者123 更新时间:2023-11-29 21:05:09 24 4
gpt4 key购买 nike

我正在创建一个从网络服务获取数据的应用程序。我一直在 while(true) 并在特定的毫秒内休眠循环。我想让服务操作(从 web 服务获取数据)始终在特定时间开始。而不是总是在 Thread.sleep(milli) 暂停...谢谢这是一直在用的

while(true)
{
///pullDataFromWebservice();
Thread.sleep(600000);
}

最佳答案

使用 Alarm API.它比 sleep 和轮询服务更安全。

为什么?

因为 Android 很可能在资源不足时回收这种长时间运行的服务,从而导致在你的延迟逻辑中永远不会被调用!


从现在起 1 小时内激活回调的示例:

private PendingIntent pIntent;

AlarmManager manager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, MyDelayedReceiver.class); <------- the receiver to be activated
pIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() +
60*60*1000, pIntent); <---------- activation interval

关于android - 如何在特定时间启动服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24822506/

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