最近项目有个需求:用户在启动应用前就得在后台悄悄监听服务器,有新固件时,把它下载到本地,当用户近应用后直接提示安装。因为应用打开后会连接智能设备的Wi-Fi,所以只能在近应用前提前下好服务器的东西,所以需要一个能长久后台服务去监听,大家给点好的意见!
走同样的路,发现不同的人生
所谓启动前就监听,严格来说是不存在这种可能的。你所谓的启动前,应该是说用户之前启动过应用,进程没有杀掉,这期间在后台一直在运行,如果有更新就下载文件。
可以创建一个后台服务定时去服务器拉数据来做,也可以用现有的push机制来做,如果有更新内容,就推送消息给所有用户,用户收到push通知后,得到下载地址,就可以下载了。
守护进程+长连接或轮询关于守护进程,可以参考守护进程
还是在进入应用的时候检测一下,在设置中加一个版本检测。你说的这种长久后台肯定会被用户禁用的
给你一个方案哈,只是种思路:
监听各种广播,例如起机广播,或者百度全家桶等广播,例如广播启动你的后台Service服务。
服务启动后,使用AlarmManager设置一个定时启动的PendingItnent广播,时间间隔根据项目需要,保证每隔一段时间都能启动你的service。
完成后台service自己的逻辑,注意不要阻塞UI,不要内存泄露。
连接智能设备的 WIFI 之前先检测更新不行吗?
比较省电的方法是:在5.0以后可以使用JobScheduler,查询是否有新固件。有新固件就下载。当然这不是一定会执行的,有一部分用户没获得更新,在首页,检查更新。这部分用户就得等一会儿。
所谓启动前就监听,严格来说是不存在这种可能的。你所谓的启动前,应该是说用户之前启动过应用,进程没有杀掉,这期间在后台一直在运行,如果有更新就下载文件。
可以创建一个后台服务定时去服务器拉数据来做,也可以用现有的push机制来做,如果有更新内容,就推送消息给所有用户,用户收到push通知后,得到下载地址,就可以下载了。
守护进程+长连接或轮询
关于守护进程,可以参考守护进程
还是在进入应用的时候检测一下,在设置中加一个版本检测。你说的这种长久后台肯定会被用户禁用的
给你一个方案哈,只是种思路:
监听各种广播,例如起机广播,或者百度全家桶等广播,例如广播启动你的后台Service服务。
服务启动后,使用AlarmManager设置一个定时启动的PendingItnent广播,时间间隔根据项目需要,保证每隔一段时间都能启动你的service。
完成后台service自己的逻辑,注意不要阻塞UI,不要内存泄露。
连接智能设备的 WIFI 之前先检测更新不行吗?
比较省电的方法是:
在5.0以后可以使用JobScheduler,查询是否有新固件。有新固件就下载。
当然这不是一定会执行的,有一部分用户没获得更新,在首页,检查更新。这部分用户就得等一会儿。