您好,欢迎光临本网站![请登录][注册会员]  
文件名称: android后台限制
  所属分类: Android
  开发工具:
  文件大小: 398kb
  下载次数: 0
  上传时间: 2019-04-20
  提 供 者: weixin_********
 详细说明:android后台限制方式,以及系统流畅度,对系统更加了解处理对用户可见的任务时,应用将被置于白名单中,例如: ·处理一条高优先级Firebase云消息传递(FCM)(https;/firebase.google.com/docs/cloud-messaging/消息。 ·接收广播,例如短信/彩信消息。 从通知执行Pendingintent(https://developer.andraid.com/reference/android/app/pendingintent.htm1) 在很多情况下,您的应用都可以使用 Jobscheduler (https://developer.android.com/reference/android/app/job/jobscheduler.html)作业替换后台服务。例如 CoolPhotoApp需要检查用户是否已经从朋友那里收到共享的照片,即使该应用未在前台运行 之前,应用使用一种会检查其云存储的后台服务。为了迁移到 Android8.0,开发者使用一个计划作业替 换了这种后台服务,该作业将按一定周期启动,查询服务器,然后退出 在 Android8.0之前,创建前台服务的方式通常是先创建一个后台服务,然后将该服务推到前台。 Android8.0有一项复杂功能;系统不允许后台应用创建后台服务。因此, Android8.0引入了一种全新的 方法,即 Context, start Foregroundservice(),以在前台启动新服务。 在系统创建服务后,应用有五秒的时间来调用该服务的 startForeground() (https://developer.androidcom/reference/android/app/service.html#startforeground(int,androidapp.Notification)) 方法以显示新服务的用户可见通知。 如果应用在此时间限制内天调用 startForeground() (https://developer.androidcom/reference/android/app/service.html#startforeground(int, android.ap. Notification)),则系统将停止服务并声明此应用为ANR (https://developer.androidcom/training/articles/perf-anr.html 广播限制 如果应用注册为接收广播,则在每次发送广播时,应用的接收器都会消耗资源。如果多个应用注册为接收 基于系统事件的广播,这会引发问题;触发广播的系统事件会导致所有应用快速地连续消耗资源从而降 低用户体验 为了缓解这一问题, Android7.0(AP级别25)对广播施加了一些限制,如后台优化 https://developer.android.com/topic,/performance/background-optimizationhtm)中所述。 Android8.0让这些限制更为严格。 针对 Android8.0的应用无法继续在其清单中为隐式广播注册广播接收器。隐式宀是一种不专门针对 该应用的广播。例如, ACTION PACKAGE REPLACED (https://developer.androidcom/reference/android/content/intent.html#actionPackAgeReplAced)就是一种隐式 广播,因为它将发送到注册的所有侦听器,让后者知道设晉上的某些软件包已被替换。 不过, ACTION MY PACKAGE REPLACED (https://developer.androidcom/reference/android/content/intent.htmihactionMyPackaGeReplAceD)不是隐式广 播,因为不管已为该广播注册侦听器的其他应用有多少,它都会只发送到软件包已被替换的应用。 应用可以继续在它们的清单中注册显式广播。 应用可以在运行时使用 Context. registerReceiver() (https://developer.android.com/reference/android/content/context.html#registerreceiver ( android. content, BroadcastReceiver, android. content. ntentFilter)为任意广播(不管是隐式还是显式)注 册接收器。 需要签名权限(htt://developer,android.com/guide/topics/manifest/permission-elementhtm#peve的广播不受此限 制所限,因为这些广播只会发送到使用相同证书签名的应用,而不是发送到设备上的所有应用 在许多情况下,之前注册隐式广播的应用使用 Jobscheduler (https://developer,android.com/reference/android/app/job/jobscheduler.html)作业可以获得类似的功能。 例如,一款社交照片应用可能需要不时地执行数据清理,并囯倾冋于在设备连接到充电器时执行此操作。 之前,应用已经在清单中为 ACTION POWER CONNECTED (https://developer.androidcom/reference/android/content/intent.htmi#actionPoweRConnEctEd)注册了一个接收 器;当应用接收到该广播时,它会检查清理是否必要。为了迁移到 Android8.0,应用将该接收器从其清 单中移除。 应用将清理作业安排在设备处于空闲状态和充电时运行。 注:很多隐式广播当前均已不受此限制所限。应用可以继续在其清单中为这些广播注册接收器,不管应用 针对哪个AP级别。有关已豁免广播的列表,请参阅隐式广播例外 (https://developer.androidcom/about/versions/oreo/background-broadcasts.html : notel 迁移指南 默认情况下,这些更改仅影响针对0的应用。不过,用户可以从 Settings屏幕为任意应用启用这些限 制,即使应用并不是以O为目标平台 您可能需要更新应用,使其符合新限制。 了解您的应用如何使用服务。如果您的应用依赖某些在它处于空闲时于后台运行的服务,您需要替换这些 服务。 可能的解决方法包括 如果处于后台时您的应用需要创建一个前台服务,请使用新的 NotificationManager. startserviceIn Foreground( 方法,而不是创建一个后台服务,然后尝试将其推到前台。 如果服务容易被用户注意,请将其设为前台服务。例如,播放音频的服务始终应为前台服务。 1E NotificationManager start ServiceIn Foreground() TiOsEstartservice((htTps://developer.android.com/reference/android/content/context.html#tstartservice ( android. content, Intent))创建服务。*寻找一种使用计划作业实现服务功能的方式。如果服务未在执行容 易立即被用户注意到的操作,一般情况下,您都能够使用计划作业。 发生网络事件时,请使用Fcm(Https;/firebase.google.com/docs/cloud-messaging选择性地唤醒您的应用 而不是在后台轮询 ·在应用正常处于前台之前,请推迟后台工作 检査在您应用的清单中定义的广播接收器。如果您的清单为显式广播声明了接收器,您必须予以替换。 「能的解决方法包括 通过调用 Context, registerReceiver() (https://developer.androidcom/reference/android/content/context.html#registerreceiver ( android. content. BroadcastReceiver, android. content. IntentFilter)而不是在清单中声明接收器的方式在运 行时创建接收器。 使用计划作业检查条件是否会触发隐式广播。
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: android后台限制
 输入关键字,在本站1000多万海量源码库中尽情搜索: