通话的Android服务定期[GoodApporach?] [英] Call Android Service at regular intervals [GoodApporach?]
问题描述
我的要求是
Android的应用程序需要发送用户位置信息(纬度和放大器;经度)到服务器每隔一小时(这是可配置)
Android application has to send user location details(latitude & longitude) to the server for every one hour(which is configurable).
我也跟着用报警经理我在配置的时间间隔调用我的服务,将发送位置信息到服务器无论应用程序是否正在运行的方法。
The approach I followed is using the alarm manager i am invoking my service at configured intervals which will send the location details to server irrespective of whether the application is running.
这是一个很好的方法?
推荐答案
我preFER ScheduledExecutorService的,因为它是后台任务更加容易。
I prefer ScheduledExecutorService, because it is easier for background Tasks.
AlarmManager:
报警管理器,只要报警接收机的的onReceive()方法执行持有CPU唤醒锁。这可以保证手机不会睡觉,直到你已经处理完播出。一旦的onReceive()返回时,报警管理器释放该唤醒锁。
的ScheduledThreadPoolExecutor:
您可以使用java.util.Timer中或的ScheduledThreadPoolExecutor(preferred)安排一个动作定期在后台线程上发生。
您可以看到完整的答案在这里=> 哪个好ScheduledExecutorService的或AlarmManager在android系统?与<一个HREF =http://stackoverflow.com/a/14377875/3884250>这里
You can see complete answer here => Which is Better ScheduledExecutorService or AlarmManager in android? And Here
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// Hit WebService
}
}, 0, 1, TimeUnit.HOURS);
这篇关于通话的Android服务定期[GoodApporach?]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!