美文网首页android开发
android App长期运行于后台的方法

android App长期运行于后台的方法

作者: yuchu1900 | 来源:发表于2018-12-07 14:26 被阅读0次

首先申明,要搞流氓软件请绕路,我们今天讲的是正常应用的需求。我们知道,通过android手机在锁屏、HOME键,菜单键选择了别的App后,先前用户正在看的App就看不见了,退到了后台,android系统不会马上关闭这些后台的App,而是在系统认为合适的时候,才会去关闭它,比如系统发现手机内存不够了。

那么,有没有办法,不让系统关闭我们已经处于后台工作的App呢?比如一个骑行软件,这种app要求用户锁屏后,后台要一直运行,用来记录用户的定位数据,形成一条完整的骑行路线,以便用户随时查看自己的历史骑行轨迹,这就涉及到App要在后台一直运行,否则用户辛辛苦苦骑行的数据就容易丢失。严格意义讲,系统拥有最高权限,它硬要关闭你的App,你是无能为力的,下面要讲述的方法只是让你处于后台的App能尽量不被系统关闭。

一、前台服务

App可以通过注册一个前台服务Forground Service,开启了前台服务的App优先级要更高。Google官方为了应对流氓软件,在安卓4.3以上的系统的通知栏上会显示“XX正在后台运行”,这对正常App基本没有什么影响,用户本来就知道我们App在后台跑。

二、独立进程

App可以开启一个独立进程,来运行需要跑在后台的功能。android系统关闭后台会选择占用资源比较多的优先释放。因此这个做法要注意,在这个进程独立运行的功能要精炼,类似一个很小的独立的服务,这样即使主进程被系统关闭,这个独立进程还在运行。当然,你可以设置进程相互唤醒的机制来提高App驻留内存的几率。独立进程最大的问题是,它与主进程之间的数据通信。

三、透明悬浮窗

我们知道,App可以在安卓系统中显示悬浮窗,开启悬浮窗的App不会被系统随便清理掉。因此,可以设置一个大小为1像素的透明悬浮窗,这样用户是看不到的。App退到后台后,由于有悬浮窗的存在,进程也得以保留。这个方法也已经被Google所察觉,在新版的安卓系统以及很多第三方ROM中,App已经不能随便申请到悬浮窗的权限。

四、播放音频

咋一看这个标题很奇怪,其实一点都不会。我们听音乐的时候,经常都要锁屏在后台播放音乐,但是我们很少说,听一半音乐会被系统关掉。这说明音乐播放在后台是拥有很高权限的,系统是轻易不会关闭的。那么,我们要怎么做呢?可以先找一个没有声音的音乐文件,比如xxx.mp3,然后App内开启一个播放器,循环播放这个音乐文件。当我们App退到后台之后,因为还有音乐一直在播放,所以系统认为优先级更高,不会轻易关掉。这个方法比上面的方法要有效的多,它最大的缺点是很耗电。一个可行的做法是:在设置里添加一个选择开关,让用户自己选择是否开启。当用户的App在后台比较容易被系统关闭时,就建议用户自己开启这个选项,但同时警告说会比较耗电。这个方法有点流氓,非到万不得已,不建议使用。

当然,根据系统会优先关闭占用资源的后台App的特点,还有一些技巧,比如图片、音视频资源没用了,要尽快从内存中释放;耗电大的功能也要适时关闭等等,就不一一列举了。

相关文章

  • android App长期运行于后台的方法

    首先申明,要搞流氓软件请绕路,我们今天讲的是正常应用的需求。我们知道,通过android手机在锁屏、HOME键,菜...

  • 待总结:判断APP处于前台还是后台的方案

    判断App位于前台或者后台的6种方法 android 如何判断app 运行在后台

  • (二)Service

    什么是ServiceService是一个长期运行在后台没有用户界面的Android组件。 在Android中后台是...

  • Service

    服务是什么? 是Android中实现程序后台运行的解决方案 用途: 执行无需交互且要求长期运行的任务(如:音乐后台...

  • Android 小白 Service 入门

    Service (服务) 属于 Android 组件之一, 它可以运行在 App 后台, 提供和该 App 相关的...

  • 8.2 Service

    简介:Android中实现程序后台运行的解决方案,适用于无需用户交互要求长期运行的任务; (一个可以在后台执...

  • android 获取后台运行APP

    作为android的开发者,获取后台运行APP应该就像是基本功一样。不过遇到这个需求,在网上搜了好长时间,试了各种...

  • Cordova 后台运行 Android APP

    Github: https://github.com/katzer/cordova-plugin-backgrou...

  • 12.使APP长期后台运行

  • 四大组件 - Service服务

    一、Service基本使用 Service是Android中实现程序后台运行的解决方案。 适用:长期需要执行,且不...

网友评论

    本文标题:android App长期运行于后台的方法

    本文链接:https://www.haomeiwen.com/subject/shlthqtx.html