android 关于提高第三方app的service优先级

android 关于提高第三方app的service优先级

大家好,又见面了,我是全栈君。

本博客仅仅要没有注明“转”。那么均为原创,转贴请注明本博客链接链接


基本上大家都知道提高service优先级能够在非常大程度上让你的service免于由于内存不足而被kill,当然系统仅仅是在此时先把优先级低的kill掉。假设内存还是不够,也会把你的service干掉的。只是如今的机器不像几年前了,基本上不会发生那种情况。


先来看看网上常见的错误方法:


1.android:persistent=”true”

对第三方app无效,以下是官方说明

android:persistent
Whether or not the application should remain running at all times — ”
true” if it should, and ”
false” if not. The default value is ”
false“. Applications should not normally set this flag; persistence mode is intended only for certain system applications.

 

2.onDestroy中重新启动service

service被系统杀死的时候并不一定会运行onDestroy。拿什么重新启动

 

3.android:priority

service根本没有这属性

 

4.setForeground

这个是有效的,可是网上的样例却都是无效的原因是參数错误

 

让service免于非难的办法是提高它的重要性,在官方文档中已经说明进程有五个级别,当中前台进程最重要。所以最后被杀死。

怎样使之变成前台进程能够參阅官方文档。

http://developer.android.com/guide/components/processes-and-threads.html

http://su1216.iteye.com/blog/1591699

 

这里仅仅说怎样使用setForeground将service设置为前台进程

Notification notification = new Notification();
notification.flags = Notification.FLAG_ONGOING_EVENT;
notification.flags |= Notification.FLAG_NO_CLEAR;
notification.flags |= Notification.FLAG_FOREGROUND_SERVICE;
service.startForeground(1, notification);

上面的三个属性放到一起,值为0x62。

    /**
     * Bit to be bitwise-ored into the {@link #flags} field that should be
     * set if this notification is in reference to something that is ongoing,
     * like a phone call.  It should not be set if this notification is in
     * reference to something that happened at a particular point in time,
     * like a missed phone call.
     */
    public static final int FLAG_ONGOING_EVENT      = 0x00000002;
    /**
     * Bit to be bitwise-ored into the {@link #flags} field that should be
     * set if the notification should not be canceled when the user clicks
     * the Clear all button.
     */
    public static final int FLAG_NO_CLEAR           = 0x00000020;

    /**
     * Bit to be bitwise-ored into the {@link #flags} field that should be
     * set if this notification represents a currently running service.  This
     * will normally be set for you by {@link Service#startForeground}.
     */
    public static final int FLAG_FOREGROUND_SERVICE = 0x00000040;

最后。我们能够使用以下命令看看手机中的哪些应用这么干了,你在平时使用的时候是不是他们存活时间最长。最不easy被系统干掉

dumpsys notification

转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.csdn.net/su1216/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115439.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • web navigator_前端如何传参数为一个对象

    web navigator_前端如何传参数为一个对象Navigator对象一、Navigator对象简介二、Navigator对象集合三、Navigator对象属性1.appCodeName、appName、appVersion(1)属性介绍(2)具体演示2.cookieEnabled、onLine(1)属性介绍(2)具体演示3.platform、userAgent(1)属性介绍(2)具体演示四、Navigator对象方法1.javaEnabled()五、Navigator对象描述一、Navigator对象简介Navigator对象包含有关浏览

    2025年8月29日
    4
  • 用java输出语句_Java的常用输入输出语句

    用java输出语句_Java的常用输入输出语句一、概述输入输出可以说是计算机的基本功能。作为一种语言体系,java中主要按照流(stream)的模式来实现。其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的数据流叫做输出流(outputStream)。Java语言体系中,对数据流的主要操作都封装在java.io包中,通过java.io包中的类可以实现计算机对数据的输入、输出操作。在编…

    2022年7月7日
    21
  • Java网络编程:TCP的socket编程

    Java网络编程:TCP的socket编程一、Java中的网络编程协议相当于相互通信的程序间达成的一种约定,它规定了分组报文的结构、交换方式、包含的意义以及怎样对报文所包含的信息进行解析,TCP/IP协议族有IP协议、TCP协议和UDP协议。现在TCP/IP协议族中的主要socket类型为流套接字(使用TCP协议)和数据报套接字(使用UDP协议)。TCP协议提供面向连接的服务,通过它建立的是可靠地连接。Java为TCP协议提供了两个类:So

    2022年7月7日
    30
  • 安全帽识别 安全帽佩戴效果 安全帽检测 yolov4安全帽识别 yolov3

    安全帽识别 安全帽佩戴效果 安全帽检测 yolov4安全帽识别 yolov3施工场景下的行为识别领域。该应用领域在技术上可拆分为两部分:视频跟踪和行为识别。这一周密集调研了文献,发现着实是一个大坑。其中的视频跟踪最近的各頂会论文出现最多的是单目标跟踪,而我们要解决的确是多目标跟踪,最近出的较好的能实用性的是deepSort;真实的施工场景中摄像头的远近,拍摄的遮挡,工人服装的统一,重叠,违规动作幅度的大小等都是巨大的挑战;行为识别方面最近出的论文较多,能实用性的目前敲定ECO模型;在跟踪过程中某一个工人的时空管道数据的抽取也是一个难题等等。无论如何,这块硬骨头得啃下来。行为识别模

    2022年5月19日
    30
  • validate bootstrap 方法「建议收藏」

    validate bootstrap 方法「建议收藏」文章来自:源码在线https://www.shengli.me/jquery/167.html引入文件:jquery-2.1.0.min.jsbootstrap.min.jsbootstrapValidate.js 

    2022年8月30日
    2
  • API接口重复提交

    API接口重复提交

    2021年11月6日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号