我的要求是
Android 应用程序必须每隔一小时向服务器发送一次用户位置详细信息(纬度和经度)(可配置)。
我遵循的方法是使用警报管理器,我以配置的时间间隔调用我的服务,无论应用程序是否正在运行,该服务都会将位置详细信息发送到服务器。
这是一个好方法吗?
最佳答案
我更喜欢 ScheduledExecutorService,因为它对于后台任务来说更容易。
警报管理器:
只要警报接收器的 onReceive() 方法正在执行,警报管理器就会持有 CPU 唤醒锁。这保证了在您处理完广播之前手机不会休眠。一旦 onReceive() 返回,警报管理器就会释放此唤醒锁。
调度线程池执行器:
您可以使用 java.util.Timer 或 ScheduledThreadPoolExecutor(首选)来安排在后台线程上定期发生的操作。
您可以在此处查看完整答案 => Which is Better ScheduledExecutorService or AlarmManager in android?和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 - 定期调用 Android 服务 [GoodApporach?],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26073424/