通过如下设置可以让一个软件一直在后台运行:
一、打开手机,在手机桌面找到“设置”一项。
二、点击设置进入后,下拉菜单找到“电池”一栏。
三、点击电池进入后,找到“耗电保护”一栏。
四、点击耗电保护进入后,找到你想一直后台运行的软件。
五、点击该软件进入后,将“后台冻结”和“检测到异常时自动优化”这两项的开关关闭,这样这个软件就会一直在后台运行了。
如何让一个应用程序一直在后台运行
1、保活手段
1 业界保活手段:黑色保活,灰色保活,白色保活
2 黑色保活:
1 不同的APP进程,用广播相互唤醒,包括利用系统广播进行唤醒
2 常见手段:
1 开机,网络切换,拍照,拍视频等利用系统广播唤醒APP
此场景Google已经意识到,在Android N 取消了 拍照,视频,网络切换的广播
2 接入第三方的SDK也会唤醒相应的APP进程
3 假如你手机里装了支付宝,淘宝,UC等阿里系的APP,那么你打开任何一个,都有可能唤醒其他的阿里系的APP
3 白色保活:
就是调用系统的API启动一个前台Service进程,这样会在通知栏生成一个Notification,用户知道哪些进程正在运行
4 灰色保活
1 保活领域应用最为广泛,利用系统的漏洞来启动一个前台的Service进程,与“白色保活”不同的是,它不会在通知栏生成一个Notification,用户无法察觉,但是优先级要高于普通的后台进程。
2 实现思路
思路一:当API<18,启动前台的Service直接传入new Notification();
思路二:当API >= 18,同时启动两个id相同的前台Service,然后再将后启动的Service做stop处理
代码这样写:
[java]view plaincopy
importandroid.app.Notification;
importandroid.app.Service;
importandroid.content.Intent;
importandroid.os.Build;
importandroid.os.IBinder;
/**
*APP灰色保活
*Createdbyfflinon2016/4/23.
*/
publicclassGrayServiceextendsService{
privatefinalstaticintGRAY_SERVICE_ID=1001;
@Override
publicIBinderonBind(Intentintent){
returnnull;
}
@Override
publicintonStartCommand(Intentintent,intflags,intstartId){
//API<18,此方法能有效地隐藏notification的图标
if(Build.VERSION.SDK_INT<18){
startForeground(GRAY_SERVICE_ID,newNotification());
}else{
Intentintent1=newIntent(this,GrayInnerService.class);
startService(intent1);
startForeground(GRAY_SERVICE_ID,newNotification());
}
returnsuper.onStartCommand(intent,flags,startId);
}
//给API>=18的平台上做灰色保护手段
publicclassGrayInnerServiceextendsService{
@Override
publicIBinderonBind(Intentintent){
returnnull;
}
@Override
publicintonStartCommand(Intentintent,intflags,intstartId){
startForeground(GRAY_SERVICE_ID,newNotification());
stopForeground(true);
stopSelf();
returnsuper.onStartCommand(intent,flags,startId);
}
}
}
3 检验方法:
首先看系统通知栏有没有Notification,如果没有,就进入手机adb shell模式,输入命令dumpsys activity services PackageName
打印出指定包名的所有进程中的service信息,看下有没有isForground=true的信息,如果有,就说明了该APP使用了灰色保活
4 使用灰色保活手段并不意味着你的应用就能永生不死,只能说提高了进程的优先级,如果应用占用了很大的内存,还是会被回收的
2、进一步理解保活
1 进程回收机制
系统出于体验和性能上的考虑,APP在退出后台时系统并不会真正的kill掉这个进程,而是将其缓存起来,打开的应用越多,后台缓存的进程也就越多。在系统内存不足的情况下,系统开始根据自身的一套进程回收机制来判断要回收掉哪些进程,这套杀死进程回收内存的机制叫 Low Memory Killer,它是基于Linux内核的OOM killer机制诞生的,该机制为每个系统分配了一个值,叫做oom_adj,代表了进程的优先级,oom_adj越大,代表优先级越低,越容易被回收,普通APP进程的oom_adj >=0,系统的可能会小于0.
2 查看oom_adj的值,需要用到两个shell命令
ps | grep 包名
$cat /proc/进程id/oom_adj
3 结果发现,APP推到后台,UI进程的值降低最为明显,因为它占用的内存资源最多,因此,为了避免后台UI进程被杀,需要尽可能的释放一些不用的图片,音频资源
怎么让软件在后台一直运行着,ViVO手机
你好,想让软件在后台一直运行着,可以在手机上进入设置,然后选择应用,接着找到要后台运行的软件,然后将该软件的自动后台启动运行,的开关打开即可。
如何能让安卓系统的应用程序一直开在后台?
打开程序后点击主页,程序就会一直开在后台。
具体分析如下:
单击菜单键,将你要选择后台一直运行的软件图标向下滑动,出现一个锁的标志,即可。
一般都是在后台运行着的,类似QQ,微信,都是。只是把界面清理了,减少内存消耗。
进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。
但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要。所以说不用在意剩余内存的大小。
果你要限制开机启动项和后台程序自启需要root权限,360等安全软件都可以,有人说那些软件没用,用了一段时间还是有后台启动现象,其实你是误会了,安卓手机程序后台自动启动,都是因为接收到某些事件(如网络连接变化,开屏解锁,开机等)而自动启动,即使你清理了内存,软件进程当时被杀掉,但是遇到比如说解锁,锁屏等,他们就会自动的启动后台进程,所以说你可以装个绿色守护。
多说两句,如果你没有ROOT,且不知道怎么ROOT,那就别折腾了,进入设置,找到开发人员选项,拉到底部,点击选择后台进程限制,选择不允许后台进程。
这样就没有后台程序了,但有不好的后果:当你使用其他应用需要qq授权,当跳到qq你授权之后却发现先前的应用被关闭了。为了使用方便可以允许一到三个后台程序,再多的话设置这个就没意义了。
为什么我的手机应用程序打开不了,一打开就是已停止运行呢
建议按以下方法查看是什么原因造成的并解决:
1、程序缓存过多:在手机设置--应用程序--全部--找到出现停止运行的程序--清理数据;(大部分手机都可以通过此方法解决的)。
2、手机内存过低:系统运行程序多,内存不足,在设置—应用程序—正在运行,关闭其他后台运行程序。
3、安装位置不对:进入设置--储存--首选安装位置--由系统决定,更改储存位置。
4、程序不兼容:建议卸载重新安装该程序或卸载了一些与系统不兼容的程序。
5、程序本身问题:有些程序本身存在问题,如前期腾讯组件出现问题,导致腾讯游戏出现停止运行的提示。(这种情况可通过多台不同品牌机器对比得出结论)
6、若排除以上方法后仍出现停止运行的情况,建议恢复出厂设置,或者重刷固件
怎么让一个软件一直在后台运行?
现在的智能手机基本都可以让一个以上软件在后台一直运行,方法法非常简单,方法是→点击进入需要运行的软件→进入指定位置后→直接点击home退出→这样软件还在运行不影响你对另一个软件进行操作。手机配置越高可后台运行的软件越多。
请问手机为什么总是出现应用程序停止运行?
建议按以下方法查看是什么原因造成的并解决:
1、程序缓存过多:在手机设置--应用程序--全部--找到出现停止运行的程序--清理数据;(大部分手机都可以通过此方法解决的)。
2、手机内存过低:系统运行程序多,内存不足,在设置—应用程序—正在运行,关闭其他后台运行程序。
3、安装位置不对:进入设置--储存--首选安装位置--由系统决定,更改储存位置。
4、程序不兼容:建议卸载重新安装该程序或卸载了一些与系统不兼容的程序。
5、程序本身问题:有些程序本身存在问题,如前期腾讯组件出现问题,导致腾讯游戏出现停止运行的提示。(这种情况可通过多台不同品牌机器对比得出结论)
6、若排除以上方法后仍出现停止运行的情况,建议恢复出厂设置,或者重刷固件。
怎么让手机应用一直后台运行,我一切换到其他软件一会儿另一个软件就停止运行了,再点就要重新进入软件
金立f103手机怎么让手机应用一直后台运行,我一切换到其它应用就停止运行,再点就要重新进入软件
转载请注明出处51数据库 » 让软件一直在运行应用程序 怎么设置让一个软件一直在后台运行