android 8.0后台运行限制 10C

android 8.0后新加的后台运行限制权限能在代码中设置吗?怎么设置,请指教.

3个回答

在android 有一个配置文件AndroidManifest.xml,里面 可以系统权限

yuejiang10516
yuejiang10516 可以系统权限什么意思?我找了权限没有能设置这方面的权限
11 个月之前 回复

很简单,使用startForeground将后台服务改为前台服务就可以了。

private void makeForegroundService() {
        Intent notificationIntent = new Intent(this, MainActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        NotificationChannel channel;
        String channelId;

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            channelId = "channel";
            channel = new NotificationChannel(channelId, "MainActivity", NotificationManager.IMPORTANCE_NONE);
            if (notificationManager != null) {
                notificationManager.createNotificationChannel(channel);
            }
        } else {
            channelId = null;
        }

        Notification notification = new Notification.Builder(this, channelId).setContentTitle("Title").setContentText("ContentMessage").setContentIntent(pendingIntent).build();
        startForeground(SYSTEM_FIXED_SERVICE_ID, notification);
    }
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android Oreo 后台运行限制
后台计算十分重要 —— 不论是从服务器获取最新数据还是对 UI 搜集到的数据进行进一步处理都需要用到后台处理。然而,在如今的移动环境下,过量的后台计算也会确实地影响用户体验和手机续航。所以我们在 Android Oreo 里针对后台运行做出了一些限制,当然这并不意味着您只能在前台进行计算了,事实上替代方案有很多。 但不论怎样,相比较以前的版本,Android Oreo 最大的
Android 8.0后台运行策略学习
本文主要是对谷歌开发者官方微信公众号发布的【中文教学视频】Android Oreo 中的后台进程等文章的学习记录。 概览 Service限制 前台应用的定义 影响所有后台Service 针对Service的选项 adb测试命令 广播限制 针对静态隐式广播接收器的选项 后台位置限制 受影响的 API 相关文档 为了流畅的用户体验,从 API 26开始,Android ...
Android 8.0后台执行限制
Android O对应用在后台运行时可以执行的操作施加了限制,称为后台执行限制(Background Execution Limits),这可以大大减少应用的内存使用和耗电量,提高用户体验。后台执行限制分为两个部分:后台服务限制(Background Service Limitations)、广播限制(BroadcastLimitations)。 后台服务限制 如何才算是后台应
Android后台运行
有Activity1、Activity2、Activity3三个Activity,每个Activity上面有一个按钮分别为B1、B2、B3.在AndroidManifest.xml中设置Activity1的intent-filter为rn[code=XML]rn rn rn rn[/code]rn现在要在Activity1启动后,点击按钮B1跳转到Activity2,同时Activity1调用finish()结束。此时要按BACK键返回,让程序后台运行,在通知栏显示图标。之后在程序退出前,如何让再次点击应用程序列表中的图标时自动跳到Activity2 (即保存程序状态,第一次运行后点击B1由Activity1跳到Activity2,然后按BACK切换回桌面,之后再点程序图标让程序自动切换回按BACK之前的状态)? 在Activity2显示时切换到桌面,再点通知图标后切换会Activity2,在Activity3显示时切换到桌面,再点通知图标后切换会Activity3。仿android版QQ效果,如何实现?求高手指点??
学徒浅析Android——Android 8.0(O)后台服务的限制和变化
Android 最近几版的特色主要集中在省电和后台管理上,O的发布,对Service和Broadcast又近一步加强了管束。主要可概括为如下两点:       1、后台应用不被允许创建后台服务,必须通过JobScheduler或者Context.startForegroundService()进行创建       2、特定的隐式广播不再被允许启动,必须通过JobScheduler调用或者显式注
浅析Android——Android 8.0(O)后台服务的限制和变化
Android 最近几版的特色主要集中在省电和后台管理上,O的发布,对Service和Broadcast又近一步加强了管束。主要可概括为如下两点:       1、后台应用不被允许创建后台服务,必须通过JobScheduler或者Context.startForegroundService()进行创建       2、特定的隐式广播不再被允许启动,必须通过JobScheduler调用或者显式注...
将android应用后台运行
Intent i= new Intent(Intent.ACTION_MAIN); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //如果是服务里调用,必须加入new task标识 i.addCategory(Intent.CATEGORY_HOME)...
android后台运行技巧
教你如何在android实现后台运行,让你轻松掌握~
Android 实现Activity后台运行
第一种方法   Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);     第二种方法 ...
android后台运行心得
今天终于解决了 一个项目需求,就是在安卓手机串口通信时,要求接受的数据在后台保存,不显示app本身的Activity,我原来的思路是把Activity中的按钮等一些用户交互的操作全部去掉,实现APP自动打开串口,自动接收,自动显示,自动保存,然后把没有用户操作的Activity去掉,改为一个后台运行的service,结果发现一个更简便的方法,app启动后实现自动后台运行,虽然也要启动界面,但是启动...
Android后台运行的问题
我用socket上传数据到服务器,为了防止上传时间过长,所以将这一部分放在后台处理,但是onPostExecute已经运行了,也就是说doInBackground函数已经运行完毕,但是上传却没有成功,将上传代码放在Activity中操作,文件成功上传,这是为什么呢?rnrn如果像调试后台程序,应该如何进行啊?rn后台运行代码如下:rnrnpackage lmx.graduate;rnimport java.io.BufferedReader;rnimport java.io.BufferedWriter;rnimport java.io.File;rnimport java.io.FileInputStream;rnimport java.io.FileNotFoundException;rnimport java.io.IOException;rnimport java.io.InputStreamReader;rnimport java.io.OutputStreamWriter;rnimport java.io.PrintWriter;rnimport java.net.Socket;rnrnimport android.os.AsyncTask;rnimport android.os.Environment;rnimport android.util.Log;rnimport android.widget.TextView;rnrnpublic class uploadAsyncTask extends AsyncTaskrn rn public uploadAsyncTask(TextView textView)rn rn this.textView = textView;rn rn protected String doInBackground(String...param)rn rn int i = 0;rn for(i=1;i<=10000;i++)rn publishProgress(i);rn String path = getSDPath() +"/upload.txt";rn try rn FileInputStream fileIS = new FileInputStream(path); rn BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS,"utf-8")); rn String readString = new String(); rn int k = 0;rn while((readString = buf.readLine())!= null) rn k++;rn Log.v("error", readString);rn rn //向服务器发送信息rn Socket socket = null;rn tryrn socket = new Socket("192.168.11.17",54321);rn //向服务器发送信息rn PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);rn out.println(readString);rn System.out.println(readString);rn //接受服务器的信息rn BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));rn String mstr=br.readLine();rn if(mstr!=null)rn rn System.out.println(mstr);rn elsern rn System.out.println("数据错误");rn rn System.out.println("shangchuan");rn out.close();rn br.close();rn socket.close();rn rn catch (Exception e) rn // TODO: handle exceptionrn rn rn fileIS.close(); rn catch (FileNotFoundException e) rn e.printStackTrace(); rn rn catch (IOException e) rn e.printStackTrace(); rn rn rn rn return null;rn rn //在doInBackground执行完毕后执行rn protected void onPostExecute(String result)rn rn textView.setText("本次上传已完成");rn rn //在调用异步线程之后第一个执行,在主线程中进行rn /**rn * rn * @param rn * @return rn * @author Administratorrn */rn protected void onPreExecute()rn rn textView.setText("开始上传");rn rn protected void onProgressUpdate(Integer...values)rn //textView.setText("请勿选择继续上传,请勿退出,系统正在上传,"+Integer.toString(values[0]));rn textView.setText("请勿选择继续上传,请勿退出,系统正在上传");rn rn rn rn public String getSDPath() rn File sdDir = null; rn boolean sdCardExist = Environment.getExternalStorageState() rn .equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在 rn if (sdCardExist) rn rn sdDir = Environment.getExternalStorageDirectory();//获取跟目录 rn rn return sdDir.toString(); rnrn rnrn
Android 后台运行那些事
这里我告诉大家一些最快最实用的解决方法,这些都是放在我项目中成功实现的。Service 保活服务相互保活是一个很流氓的方式 而且随着sdk升级 这种方式已经不能在高版本使用了; 解决方式: 1*一种比较文明的方式,这也是大多数注重用户体验app使用的* 下面这张是我常用的app,因为常常把它放在后台记录行程,所以有一天突然app跳出提示说被意外杀死,要我怎么做怎么做. 其实说的很明白了
Android 8.0 Service源码分析:启动流程及后台限制详解
在使用Service的过程中,相信不少人有过这些疑问: 1) Service的启动流程是怎样的?两种启动方式具体有什么区别? 2) Android 8.0+对后台Service究竟做了什么限制?对所有App一视同仁吗? 3)前台服务为什么不受限制?前台服务可以不弹前台通知吗? 4)JobService的机制是什么,为什么不受后台限制? 通过阅读本文,了解清楚Service内部机制,你将弄明白这些问题。
Android 8.0变更之后台执行限制(自定义广播接收不到的问题)
Android 8.0变更之后台执行限制(自定义广播接收不到的问题) 背景: 目标应用通过命令发送一个广播调用第三方的系统级别应用的功能;原本这个应用targetSdkVersion为24,但是一次更新后将targetSdkVersion改为26也没有什么更新说明通知之类的东西。整了很久都没反应,以为是三方应用出现BUG,后来通过联调发现API更新了,并且在新的版本上有相关的版本变更。如下: 解...
Android 8.0 通知适配
不知不觉Android9都出来了,需要学的东西太多。。。。。。。 今天总结一下Android8.0的通知适配问题,随着Android8.0的手机陆续登场,好多人发现了通知栏的显示报错,同样的我也遇到了,遇到了就只能解决了,今天把总结写在这里。 从Android 8.0系统开始,Google引入了通知渠道这个概念。 什么是通知渠道呢?顾名思义,就是每条通知都要属于一个对应的渠道。每个App都可...
Android 8.0 通知兼容
Android 8.0 引入了通知渠道,其允许您为要显示的每种通知类型创建用户可自定义的渠道。用户界面将通知渠道称之为通知类别。targeSdk升级到26之后,所有的通知的实现都需要提供通知渠道,如果不提供通知渠道的话,所有通知在8.0系统上面都不能正常展示,下面来看代码。 既然是兼容,当然不能少了判断系统版本了: if (Build.VERSION.SDK_INT &amp;gt;= Build....
Android 8.0 新特性适配
APP适配8.0新特性详情
Android 8.0 系统服务的添加
创建Service端 package com.android.server; import android.app.ISimpleBinder; import android.content.Context; import android.os.IBinder; import android.os.RemoteException; /** * Created by Albert on 201...
android 8.0 新功能特性
Android 8.0 为用户和开发者引入多种新功能。本文重点介绍面向开发者的一部分新功能。请务必查阅 android 8.0 行为变更以了解平台变更可能影响您的应用的领域。用户体验自动调整TextView的大小Android 8.0 允许您根据 TextView 的大小自动设置文本展开或收缩的大小。这意味着,在不同屏幕上优化文本大小或者优化包含动态内容的文本大小比以往简单多了。如需了解有关如何在...
android时间管理(8.0)
1、获取时间 android获取时间的方法一般调用java的 System.currentTimeMillis()方法获取,这个方法,据网上博客所说,在linux下实质上是调用系统的gettimeofday()。获取当前时间(是1970年1月1日到现在的时间)。Date初始化时所用时间也是通过该方法获取的。 2、设置时间 目前我所知有两个接口设置时间。一个是在AlarmManager下的se...
Android 8.0适配指北
又到了7月,这是我一年一度的写适配文章的时间,今年到了安卓8.0。为什么我会总会选在这个时间点,因为国内的手机升级总是慢一拍,还有好多的新特性可能也不支持。所以在没有真机的情况下,这类的适配也只是面向模拟器的适配,感觉只能是个参考,并不敢直接用到自己的项目上。不过这几年升级跟进速度是越来越快了,大概从去年底到五月基本都已经吃上奥利奥了。所以使用8.0的用户也越来越多了,适配的时机也就来了。好吧,结...
android 8.0 安装不了
  如果你6.0 的权限给了 7.0 的也做了,还安装不上的原因估计可能还是这个  你缺少了一个权限。&amp;lt;uses-permission android:name=&quot;android.permission.REQUEST_INSTALL_PACKAGES&quot; /&amp;gt;你把这个写上应该就能解决。...
android 8.0 行为变更
Android 8.0 除了提供诸多新特性和功能外,还对系统和 API 行为做出了各种变更。本文重点介绍您应该了解并在开发应用时加以考虑的一些主要变更。其中大部分变更会影响所有应用,而不论应用针对的是何种版本的 Android。不过,有几项变更仅影响针对 Android 8.0 的应用。为清楚起见,本页面分为两个部分:针对所有 API 级别的应用和针对 Android 8.0 的应用。针对所有AP...
Android 8.0通知栏适配
最近在原生8.1手机安装app遇到了个崩溃,排查了下原因发现是通知栏没有兼容8.0版本导致的。 8.0前后版本的区别,主要是8.0以后在构建Notification.Builder的对象时,需要在构造方法中传入一个channelId参数,而这个channelId对应的渠道需要在创建Builder之前创建,这里简单做个兼容,只截取关键代码,代码如下: private static final ...
Android 8.0(O版本)
2017年google开发者大会结束,针对android8.0版本,特点主要体现在:流畅体验和核心功能。 1.流畅体验: 谷歌强调电池续航,安全性,启动时间&稳定性。 (1)耗电量低:提供智能节点措施,减少后台程序。 (2)安全性高:google play采用机器学习,每天会扫描500亿次应用程序,让安全性更具可视化。 (3)启动快:启动时间是Android7.0的一半。 (4)运行
SELinux for Android 8.0
The SELinux policy build flow for Android 4.4 through Android 7.0 merged all sepolicy fragments (platform and non-platform) then generated monolithic files in the root directory. However, this flow contradicts the primary goal of Android 8.0 architecture, which is to allow partners to update their parts of the policy, build their images ( vendor.img , boot.img , etc ), then update those images independent of the platform or vice versa (i.e., perform a platform update without updating partner images
android 8.0 notification 写法
android 8.0 对 通知栏有了很大的改变,以往的方法写通知栏会报错,google新加了一个notificationChannel,而且必须添加,这里是Demo。
《Android 8.0 功能和 API.pdf》
《Android 8.0 功能和 API.pdf》,无非就是翻译了下官方文档。。。
UiAutomatorviewer 源码 Android 8.0
UiAutomatorviewer 的源码,对应 Android 8.0 版本 。
android 8.0 图标适配
https://mp.weixin.qq.com/s/WxgHJ1stBjokPi6lTUd1Mg?
Android版本更新(适配8.0)
1.检测版本 private void checkVersion() { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(NetUtils.checkveision+"/"+packageCode(this)+"/1") ...
Android 8.0新特性调研
Timeline and updates The O Developer Preview runs from 21 March 2017 until the final Android O public release to AOSP and OEMs, planned for Q3 2017. Preview 1(initial release, alpha)——
Android 8.0恢复出厂设置
在8.0之前做过恢复出厂的demo,执行代码如下: Intent intent = new Intent(Intent.ACTION_MASTER_CLEAR);                      intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);                      intent.putExtra(Intent.
android 8.0 源码下载(26)
android 8.0 源码下载(26)
Android 8.0 Launcher3 的源代码
Android 8.0 Launcher3 的源代码 ,修改了系统原有的Launcher3的自定义权限冲突。
Android 8.0 应用图标适配
前言 android Pie 已经发布了,国内大部分手机还处于5.0,6.0,7.0版本。今年主流新机是有8.0的系统。对图标进行适配也到时候了。 1.适配与不适配区别 适配前,海豚记账app 适配后,海豚记账app 2.准备工作 2.1 让ui切透明的图层(512*512 ,带圆角),背景色使用工具调整。 2.2 Android Studio IDE ...
Android 8.0 创建桌面快捷方式
    1. 前言:公司有个给app创建桌面快捷方式的功能。  有一天,测试来说,有款手机,点击快捷方式,无反应。        2.思考:大多数手机是好的,考虑是兼容性问题。 1)经查看,问题机是  华为mate9  8.0系统.(有快捷方式,但是点击快捷方式无反应) 2 )  翻出华为mate10,下载app,发现问题,无法创建桌面快捷方式 3) 卸载mate9上的app,重新下载,...
Android 8.0系统源码分析--开篇
Andriod 8.0系统源码分析
Android 8.0 源码下载方式
由于要更新版本到oreo 不得不重新下载android版本。以前下载过,由于未做记录,又需要重新来一遍,索性把整个过程记录下来
Android 8.0 行为变更
本文内容 针对所有 API 级别的应用 后台执行限制 Android 后台位置限制 应用快捷键 语言区域和国际化 提醒窗口 输入和导航 网页表单自动填充 无障碍功能 网络连接和 HTTP(S) 连接 蓝牙 无缝连接 安全性 隐私性 记录未捕获的异常 联系人提供程序使用情况统计方法的变更 集合的处理 Android 企业版 针对 Android 8.0 的应用
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件