防止应用程序被操作系统停止或暂停

时间:2013-07-11 20:08:14

标签: android android-service codenameone

我正在开发CodenameOne上的Android应用程序,即使在最小化时也需要每5分钟发送一次Web请求。如何防止请求被操作系统停止或暂停?

我是如何实现此行为的?

4 个答案:

答案 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。


提示:也许菜单项的名称不同,具体取决于您的手机。