我正在尝试实现一个后台服务,该后台服务从特定活动开始时起每15分钟向API发出一次HTTP请求。我需要每15分钟启动一次服务,即使我的应用程序未运行或正在进行该应用程序的其他活动也是如此。我搜索了一个示例,以了解如何继续进行操作,并查看了一些Stackoverflow的问题和答案,例如:每5分钟启动一次Android服务。链接到此页面的网址:http : //code4reference.com/2012/07/tutorial-on-android-alarmmanager/
从讨论中,我知道我需要使用警报管理器,但是所有实现都没有在与广播接收器相同的活动中完成此操作。我想要在同一活动中实现的原因是因为请求的结果就是我要在UI上显示的内容。
在这种情况下是否可以实施警报管理器
但是,所有实现都没有在广播接收器的同一活动中完成此操作
那是因为这是您唯一可行的选择,即使那样也无法在Android 6.0+上很好地工作。使用配方AlarmManager
为这种情景是有它开始WakefulBroadcastReceiver
,这反过来将有工作IntentService
做的工作并离开工作完成时。
在Android 6.0及更高版本上(由“打ze模式”提供)AlarmManager
,如果设备没有充电且没有移动,您的事件将不会每15分钟触发一次。另外,由于Android 6.0+上的“应用待机”功能AlarmManager
,如果用户一段时间未进入应用程序用户界面,并且设备没有充电,您的事件将不会每15分钟触发一次。
我想要在同一活动中实现的原因是因为请求的结果就是我要在UI上显示的内容。
这与您之前的声明背道而驰:
即使我的应用程序未运行,我也需要每15分钟启动一次服务
如果您的应用程序未在运行,则您没有任何活动。
欢迎您IntentService
在事件总线(例如greenrobot的EventBus)上发布消息,以使您的活动知道工作的结果……如果活动恰好在发生(否则,该消息将被忽略)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句