Android:定期(每30秒)在后台发送位置数据,并向服务器询问新数据

Android:定期(每30秒)在后台发送位置数据,并向服务器询问新数据,第1张

概述场景:发布到服务器以在30秒内每隔30秒在后台获取任何新数据,即12小时.位置数据需要与此一起发送.目前的实施;服务类;>位置监听器,间隔为30秒,设置经度和纬度值为两个局部变量>警报管理器每隔30秒向广播接收器发出等待意图.>广播接收器在附加内容中启动带有位置变量的IntentServ

场景:

发布到服务器以在30秒内每隔30秒在后台获取任何新数据,即12小时.位置数据需要与此一起发送.

目前的实施;

服务类;

>位置监听器,间隔为30秒,设置经度和纬度值为两个局部变量
>警报管理器每隔30秒向广播接收器发出等待意图.
>广播接收器在附加内容中启动带有位置变量的IntentService.
> IntentService http发布位置并要求来自服务器的任何新数据.
> IntentService通过广播接收器将服务器响应发送回主服务类.

>服务类starts_sticky以确保 *** 作系统重新启动.

我尝试过几种不同的变化;

>我尝试使用Handler和runnable来处理发布到服务器的计时机制,但是当设备处于睡眠状态时,postDelay时间从2分钟变为7分钟.
>此外,尝试直接从警报管理器触发IntentService,但无法使用最新的位置变量更改PendingIntent附加功能.

问题;

>目前的实施方式是否可行?
>谷歌的GCM路线会更有利吗?
>你如何大力测试服务类,特别是从 *** 作系统中恢复杀死它?

提前致谢.

解决方法:

为避免 *** 作系统终止您的服务,您必须通知用户您的服务是正在进行的服务,如http://developer.android.com/guide/components/services.html#Foreground中所述.

我设法使用AlarmManager和WakeLock在后台每2分钟运行一次我的服务,如this answer所述.即使设备处于休眠状态,它每2分钟运行一次.只需将闹钟设置为重复即可

alarmMgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+5000, 60000 * ALARM_PERIOD_IN_MINUTES, alarmPendingIntent);

而不是将其设置为时间.

总结

以上是内存溢出为你收集整理的Android:定期(每30秒)在后台发送位置数据,并向服务器询问新数据全部内容,希望文章能够帮你解决Android:定期(每30秒)在后台发送位置数据,并向服务器询问新数据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1116986.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存