android - 定期调用 Android 服务 [GoodApporach?]

标签 android

我的要求是

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/

相关文章:

java - Android - 手机选择器 (HintRequest) 在双 SIM 卡手机上不显示两个号码

android - 如何指示一个 Android 应用程序只支持 ARM CPU?

java - 适用于 Android 的 Microsoft Translate API 出现 UnknownHostException

Android-按下按钮后如何将 mysql 中的数据变为 "match"

android - android中的居中对齐占位符问题

java - 在 App Engine Java 中实现一对多双向关系

android - <text area> android 上的背景颜色

android - 强制视频在 Android 上的 Youtube 应用程序中打开

android - 预加载某些区域以避免由于加载图 block 而导致谷歌地图出现滞后

java - 如何返回可用的文件路径?