我的应用程序中有一个服务,它设计为每10分钟运行一次.它基本上检查我们的服务器,看看是否一切正常运行,并通知用户任何问题.我创建了这个应用程序供我们公司内部使用.
我的同事在漫长的周末使用了该应用程序,并注意到该设备进入睡眠状态时未执行任何检查.我的印象是服务应该在后台继续运行,直到我明确地调用stopService()我的代码.
所以最终,我的目标是让服务运行,直到用户点击应用程序中的关闭按钮或终止进程.
我听说过一些叫做WakeLock屏幕不能关闭的东西,这不是我想要的.然后我听说了另一种称为部分WakeLock的东西,即使设备处于睡眠状态,也可以使CPU保持运行.后者听起来更接近我的需要.
我如何获得此WakeLock以及何时应该发布它并且有其他方法可以解决这个问题吗?
当屏幕关闭时,我的应用程序服务暂停.
我使用以下代码启动我的服务:
if (mSharedPrefs.getBoolean("prefAutoUpdatesMain", false)) {
Intent svc = new Intent(this, MyService.class);
startService(svc);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能避免服务暂停?
我在MyService中要做的是从Internet下载一些数据.如果我理解了我必须遵循的过程:
在下载数据方法时没有引用wakeLock,它是具有wakeLock的应用程序,是否正确?
默认情况下,唤醒锁是引用计数.我认为没有引用计数的wakeLock更好,一定要释放它,我错了吗?
我已经尝试了各种方法来实现这一目标,但我的服务最终会被杀死.
我想用AlarmManager每隔一小时触发一次课.即使设备处于休眠状态,它也应该发出闪烁的LED警报,振动或声音.无论如何,它应该永远运行.
我注意到Whatsapp一直在运行,即使我杀死所有正在运行的应用程序并清除内存,让设备进入睡眠状态,但仍然Whatsapp接收消息并提醒我.他们是怎么做到的?我想对我的应用做同样的事情.
我知道有些人认为你不应该创建持久性服务.
但对于我们这些想要增加知识的人来说,如何在理论上创造一个呢?
我一直在玩,并注意到使用startForeground的服务在低内存情况下被杀死.
我已经看到了一个现已弃用的许可PERSISTENT_ACTIVITY,但这并没有做太多.
那么秘密是什么?
我正在开发一个Android应用程序,我想在不知道用户的情况下读取传入的消息.我想总是在后台运行传入的消息检查器.如果收到新消息意味着我想要读取消息的内容,那消息包含一些单词(密码)意味着我想激活应用程序
请解释我如何使用示例代码,因为我是android的新手