我正在开发CodenameOne上的Android应用程序,即使在最小化时也需要每5分钟发送一次Web请求。如何防止请求被操作系统停止或暂停?
我是如何实现此行为的?答案 0 :(得分:0)
你不能从活动中做到这一点,你需要创建后台服务。
http://developer.android.com/training/run-background-service/create-service.html
答案 1 :(得分:0)
使用AlarmManager
设置每五分钟一次的操作。让它触发BroadcastReceiver
,然后将控件传递给my WakefulIntentService
(或处理IntentService
的{{1}},您将需要这样设备保持清醒状态你做你的工作)。让服务执行“Web请求”。
这仍然不是100%保证:
用户可以从设置强制停止您,在这种情况下,您的警报消失,在用户再次手动运行您的应用之前不会发生任何事情
用户可能阻止警报在某些设备上触发,例如各种SONY Xperia型号,提供“耐力模式”或等效
但是,除了滚动自己的Android操作系统版本之外,它是最好的。
答案 2 :(得分:0)
其他人的回答是正确的,你需要创建一个服务,但他们不知怎么忽略了提到代号1。
在Codename One下你需要为android创建一个本机目录,然后将服务源代码放在那里(只使用一个并不真正做任何事情的空白服务类)。然后,您需要在构建参数中添加选项android.xapplication
,您可以在其中声明服务XML属性。
说过你要做的事情是非常错误的,你不应该在Android中做到这一点!您将立即从设备中消耗电池寿命,最终操作系统将终止服务(因为它将耗尽电池电量)。解决方案是向设备发送推送通知以唤醒应用程序。
答案 3 :(得分:0)
在Android 9及更高版本中,您可以通过设置电池来防止您的应用进入睡眠状态。
长时间点击您的应用->应用信息->电池->优化电池消耗
在此处从列表中添加您的App。
提示:也许菜单项的名称不同,具体取决于您的手机。