首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android前台服务的使用(一)

而前台服务是用户可见的,并且系统内存不足时不允许系统杀死,前台服务还必须有一个状态栏的通知,只有服务被终止或从前台主动移除通知后才能被解除。...,在MyService中也用到了Notification,文章最初介绍前台服务时也说过前台服务还必须有一个状态栏的通知,只有服务被终止或从前台主动移除通知后才能被解除。... 上面前台的服务配置就完成了,我们在MainActivity中开启前台服务,并点击看看发送广播有没有变化。...,通知栏里显示了正在运行服务,点击TextView后,通知栏中也显示了点击的消息提示。...一个简单的前台服务就这样完成了。 本来做这个的目的就是为了跨进程的通讯,所以接下来就是验证新建一个App发送广播后,当前的服务能否接收到。

2K40

【Android 进程保活】提升进程优先级 ( 使用前台 Service 提高应用进程优先级 | 启动相同 id 的第二个前台 Service 关闭通知 )

文章目录 一、 前台 Service 通知问题 二、 设置 startForeground id 参数为 0 三、 启动相同 id 的第二个前台 Service 关闭通知 1、 前台服务 1 2、 关闭通知栏的服务..., 发现该应用就变成了普通后台应用 , 没有进程提权的效果 ; 三、 启动相同 id 的第二个前台 Service 关闭通知 ---- 不同版本的前台服务策略 : API Level 的设备 , 启动相同 id 的前台服务 , 并关闭 , 可以关闭通知 startService(new Intent(this, CancelNotificationService.class...; ② 必须手动创建通知通道 , 以及完整参数的通知 ; // 创建通知通道 NotificationChannel channel = new NotificationChannel..., 启动相同 id 的前台服务 , 并关闭 , 可以关闭通知 startService(new Intent(this, CancelNotificationService.class

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android前台服务的使用(二)--使用LiveEventBus实现进程间通讯(附源码)

    ——《微卡智享》 本文长度为2654字,预计阅读6分钟 前言 上一篇《Android前台服务的使用(一)》介绍了Android前台服务的使用,其中通讯用的广播方式在来接消息,在文中最后也说过LiveEventBus...实现了进程中的通讯,在《Android使用LiveEventBus消息实现组件间通讯》中有介绍过LiveEventBus的使用(不包括跨进程),本篇就来看看实现进程间的消息通讯。...单独定义Observer 定义的Observer中可以看到,接收到的字符串信息后,我们前面加上了一个“服务端接收到的消息:”后再发送回去。...") .setContentText("我是一个前台服务的Demo") .setWhen(System.currentTimeMillis())...这样使用LiveEventBus加上前台服务就实现的我们最初想到的业务的硬件控制的解耦,并且用LiveEventBus后不需要使用广播的方式两边写好多的代码。

    1.9K20

    Android程序员该如何去手写事件通信方案LiveDataBus

    它具有以下特点: 数据可以被观察者订阅; 能够感知组件(Fragment、Activity、Service)的生命周期; 只有在组件出于激活状态(STARTED、RESUMED)才会通知观察者有数据更新...5.组件和数据相关的内容能实时更新 组件在前台的时候能够实时收到数据改变的通知,这是可以理解的。...当组件从后台到前台来时,LiveData能够将最新的数据通知组件,这两点就保证了组件中和数据相关的内容能够实时更新。...LiveData具有的这种可观察性和生命周期感知的能力,使其非常适合作为Android通信总线的基础构件。...2.消息通道 LiveData扮演了消息通道的角色,不同的消息通道用不同的名字区分,名字是String类型的,可以通过名字获取到一个LiveData消息通道。

    1.4K10

    Android 各版本特性

    的ItemDecoration方法 Android 6.0特性 大量漂亮流畅的动画 支持快速充电的切换 支持文件夹拖拽应用 相机新增专业模式 Android 7.0特性 分屏多任务 增强的Java8语言模式...通道设置、广播以及免打扰 Android O引入了Notification Channels,可让您为要显示的每种类型的通知创建一个用户可自定义的频道。...APP必须拥有FOREGROUND_SERVICE权限,才允许使用前台服务,否则会抛出异常。...; 对前台服务(Foreground Service)不会有这个限制,因为前台服务都会挂一个前台通知对用户来说是可见的。...Android O新增startForegroundService(),用于启动前台服务,但有一个限制条件就是应用必须服务启动后5秒之内调用startForeground(),否则会抛出ANR 广播(Broadcast

    1.4K10

    Android 13 适配指南

    image-20220520160354680 选择“允许”,应用就可以通过任何渠道发送通知,并发布与前台服务相关的通知; 选择不允许选项,应用将无法发送通知,除了几个特定规则之外,所有通知渠道都会被屏蔽...,系统临时授予应用发送通知的权限,直到应用中的 activity 首次启动(也就是更新之后第一次启动应用),这要求应用必须有一个现有的通知通道,且其通知不得被用户明确禁用; 如果应用以 12L (32)...前台服务 (FGS) 任务管理器 Android 13 的新前台服务( Foreground Services:FGS)任务管理器显示当前运行前台服务的应用程序列表,此列表称为活动应用程序,可以通过下拉通知抽屉并点击启示来访问...对于应用在以下情况下可以执行的操作制定了新限制:用户因你应用的后台电池用量过高而将其置于“受限”状态。 新增了系统通知,用于就电池用量过高和长时间运行的前台服务向用户发出警告。...应用自撤销权限 剪贴板擦除 影响所有应用的变动: 通知权限 前台服务 (FGS) 任务管理器 使用 JobScheduler 改进预提取处理 电池资源利用率

    5.2K31

    Android P正式版即将到来:后台应用保活、消息推送的真正噩梦

    水准、服务稳定性参差不齐,对接起来难受吧; 6)有些手机小厂并没有自已的推送通道,你自建的推送能道还不能扔。...,信鸽推送的方案也是一家一家对接第3方的厂商通道道+自有通道(《[资讯] 信鸽新版上线:号称Android首家统一推送服务》),对于开发者来说信鸽的实现思路其实跟我们想的是一样的。...7.2 活跃 (Active) 活跃应用指用户正在使用的应用,例如: 1)应用启动了一个Activity; 2)应用正在运行前台服务; 3)另一个前台应用已关联至该应用 (通过同步适配器与前台应用的内容提供器相关联...8、Andriod P电量管理特性2:后台限制 当系统监测到应用消耗过多资源时,系统会通知并询问用户是否需要限制该应用的后台活动。...(请查阅《后台服务限制》了解如何判断应用是否为前台运行。) 详细限制列表,请查阅《附件:电量管理限制》。

    3.9K30

    《第一行代码》中遇到的问题

    一、开发环境 楼主使用的是Android studio 3.5.2 gradle:5.4.1 Android gradle plugin Version :3.5.2 JDK8,targetSDK...其他的就没什么了 2.第八章丰富你的程序——运用手机多媒体 这里有个问题,就是安卓8之后通知必须要有通道,也就是说每个通知都属于某一个特定的通道,我们必须要先声明通道,而书上是安卓7所以没写也不算错,解决办法...这里我们在MainActivity中创建了两个通知渠道,首先要确保的是当前手机的系统版本必须是Android 8.0系统或者更高,因为低版本的手机系统并没有通知渠道这个功能,不做系统版本检查的话会在低版本手机上造成崩溃...HttpsURLConnection实例 b.P319页:使用OkHttp时导入依赖 implementation 'com.squareup.okhttp3:okhttp:3.10.0' c.P360页使用前台服务....setContentIntent(pi) .build(); startForeground(1, notification); //让MyService变成一个前台服务

    1.8K10

    再谈Android客户端进程保活

    3,服务进程 在内存不足以维持所有前台进程和可见进程同时运行的情况下,服务进程会被杀死。...看到adj值是0,0就代表这个进程是属于前台进程,我们再按下Back键,将应用至于后台,再次查看。 ? adj值变成了8,8代表这个进程是属于不活跃的进程。...选择使用长连通道的业务。 f. 断开后重连的策略。 今天,我们讨论重点即时聊天中的心跳和 notify 机制。 1,心跳机制 通过定期的数据包,对抗NAT超时(一般会设置为5-10秒)。...GCM: 只要机器上有GMS ,启动时就尝试注册GCM,并通知后台。服务器会根据终端是否保持长连,决定是否由GCM通知。GCM主要针对国外比较复杂的网络环境。...从这个原理来说,我们可以通过提高进程的优先级来保活。 值得注意的是,Android 的前台service机制。但该机制的缺陷是通知栏保留了图标。

    3.8K71

    Android服务开发经验——优雅地活着 by个推推送

    尽可能省电 看似寻常的道理,实现起来还真不容易,下面一个个来看: 尽可能运行 Android系统会根据当前资源状况(主要是内存空闲的情况)对后台服务进行不定期的清理,尤其是当内存高度紧张时,会出现大堆服务交替处于...前台服务可以避免这个问题的发生,但是前提条件是你需要在通知栏显示一个置顶的无法清除的硕大的通知栏。...如果你的应用恰巧是类似墨迹天气或者360这样正好需要一直给用户展示这样的一个通知栏,那么恭喜你,你可以忽略这个头痛的进程回收问题;但是对大多数后台服务来说,显示这样的通知并不合适。...通常Android手机待机状态下平均电流在8mA左右,如果你希望你的应用内置到某款手机上,对不起,手机厂商对于耗电问题绝不手软,高于5mA平均电流消耗的应用通常是无法被接受的。...这样,每个SDK在信息推送过程中,都会消耗一小部分的流量。个推可以自动将这样的多个推送服务通道合并,只开启一个通道即可。

    1.1K70

    Android 12的行为变更和版本兼容思路

    前台服务通知延迟 为了为Android 12上的短期运行的前台服务提供简化的体验,对于某些前台服务,系统可以将前台服务通知的显示延迟10秒。此项更改使短期任务有机会在其通知出现之前完成。...如果前台服务至少具有以下特征之一,则系统在服务启动后立即显示关联的通知: 该服务与包含action buttons.的通知相关联。...表现 前台服务启动限制 除少数特殊情况外,以Android 12为目标的应用程序无法在后台运行时启动前台服务。如果应用程序在后台运行时尝试启动前台服务,则会发生异常(少数特殊情况除外)。...此模板可确保自定义通知在所有状态下都与其他通知具有相同的修饰,例如通知的图标和扩展功能(处于折叠状态)以及通知的图标,应用程序名称和折叠功能(处于扩展状态)。...为了确保“抬头”状态看起来像您期望的那样,请不要忘记将通知通道的重要性提高到“高”(屏幕弹出)。

    4.6K10

    APP推送系统工作原理

    步骤如下: 然而,如果此时服务器又有了新的新闻,在用户没有主动刷新的情况下,服务器是不会主动推送给用户的。 推送解决了这个困境,它让服务器主动连接APP,通知APP有了新的新闻,可以再请求。...android系统中,如果APP被关闭,APP可以启动一个后台服务来维持通道继续运行。(ios的解决方法见下) 如何维护这个长时间连接的通道?...android解决方案:GCM(系统提供)、开发各自的专用通道(国内方法) Android系统提供的 GCM 只能在 Android2.2 以上才能使用,3.0 以下必须要安装 Googleplay...道高一尺魔高一丈,app 在与管家和斗士们的长期斗争中,总结了一系列躲避被清理掉的方法,什么定时自启能力、什么相互唤醒、什么前台进程等等。...APP的服务器如果有消息需要推送,先把消息发送到苹果服务器上,再利用苹果的服务器通过长连接通道发送到用户手机,最后通知具体的APP。这样,即使安装了100款APP,也只需要向一条通道里发送推送。

    2K20

    Android 12 还没用上,Android 13 已经来了!

    为了降低新权限的影响,从低版本升级到 Android 13 的设备上已安装的应用,系统会临时授予通知权限,前提是该应用本身是有通知的资格的:应用具有通知渠道,并且用户在低版本时并未关闭该应用的通知开关。...性能和电池(所有应用) 6.1 前台服务 FGS 管理器(新功能) Android 13 系统引入了前台服务 FGS 管理器功能,它会显示当前正在运行前台服务的应用列表,并且每个应用旁边都有一个 “停止...在旧版本的前台服务并没有直接的停止按钮,只有一些些友好的应用会在前台服务通知中使用可操作性的关闭按钮。...(目前有 “无限制、优化(默认)、受限” 等选项); 新增一个电量提醒系统通知: Android 13 引入了一个新的系统通知,当应用在 24 小时内消耗了大量电池电量时会显示; 新增一个前台服务提醒系统通知...: Android 13 引入了一个新的系统通知,当应用的某项前台服务在 24 小时内至少运行了 20 小时时会显示; 相关资料:电池资源利用率[15] ---- 7.

    1.3K20

    Android 12 首个开发者预览版到来

    △ 上图: AVIF (18.2kB);下图: JPEG (20.7kB) 图源:《AVIF 已经到来》中的 图像对比,作者 Jake Archibald 前台服务优化 - 前台服务是应用管理某些面向用户任务的重要方式...为了确保用户获得更好的体验,对于以新平台为目标的应用,我们将阻止从后台启动前台服务。...为了实现向下兼容,我们还将加急作业集成到了最新版本的 Jetpack WorkManager 库 中。另外,为了减轻对用户的干扰,我们现在将部分前台服务通知的显示延迟了最多 10 秒。...添加了对 MPEG-H 透传 (passthrough) 和分载 (offload) 模式的播放支持,音频混音器、重采样器和效果经过优化,支持多达 24 个通道 (过去最大仅支持 8 个)。...为了满足这一期望,开发者需确保点击通知应直接触发 Activity 启动,而不是使用 "蹦床" (通过广播接收器或服务) 启动 Activity。通知蹦床会造成明显的延迟,影响用户体验。

    70320

    Android 进程保活招式大全

    进程的重要性,划分5级: 前台进程(Foreground process) 可见进程(Visible process) 服务进程(Service process) 后台进程(Background process...拥有某个 Service,后者绑定到用户正在交互的 Activity C. 拥有正在“前台”运行的 Service(服务已调用 startForeground()) D....因此,除非内存不足以维持所有前台进程和可见进程同时运行,否则系统会让服务进程保持运行状态。 A. 正在运行 startService() 方法启动的服务,且不属于上述两个更高类别进程的进程。...方案实现挑战 从 Android2.3 开始调用 setForeground 将后台 Service 设置为前台 Service 时,必须在系统的通知栏发送一条通知,也就是前台 Service 与一条可见的通知时绑定在一起的...其他还有一些技术之外的措施,比如说应用内 Push 通道的选择: 国外版应用:接入 Google 的 GCM。

    3.2K70

    IMSDK华为离线推送快速集成

    一、简介 即时通信 IM 的终端用户需要随时都能够得知最新的消息,而由于移动端设备的性能与电量有限,当 App 处于后台时,为了避免维持长连接而导致的过多资源消耗,即时通信 IM 推荐您使用各厂商提供的系统级推送通道来进行消息通知...,系统级的推送通道相比第三方推送拥有更稳定的系统级长连接,可以做到随时接受推送消息,且资源消耗大幅降低。...1、消息到了IM服务端,IM服务端会判断接收方userid的在线状态; 2、如果接收方是login登入状态、而且应用在前台,这种后台标记状态是Online,消息就直接发到接收端imsdk。...//从5.0.1版本开始,如果配置了离线推送,会收到厂商的离线推送通道下发的通知栏消息。...8、imsdk4.8以上的版本,才支持刷新角标,这是在im控制台配置的,配置app首个页面activity的全名称。 9、部分华为机型,杀进程后收到离线消息15+,角标增加会偶现少1个,不太准。

    2K40
    领券