首页
学习
活动
专区
圈层
工具
发布

Android实现进程保活方案解析

为了抢占市场,谁都不会放过任何一个可以提高应用日活的方法,所以App进程保活都是各大厂商,特别是头部应用开发商永恒的追求,毕竟一旦 App 进程死亡,那就再也无法在用户的手机上开展任何业务,所有的商业模型在用户侧都没有立足之地...如果是负数,表示该进程为系统进程,肯定不会被杀掉, 如果是0,表示是前台进程,即当前用户正在操作的进程,除非万不得已,也不会被杀掉; 如果是1,表示是可见进程,通常表示有一个前台服务,会在通知栏有一个划不掉的通知...黑色保活 1 像素activity保活方案,监听息屏事件,在息屏时启动个一像素的activity,提升自身优先级; Service中循环播放一段无声音频,伪装音乐app,播放音乐中的app优先级还是蛮高的...3)、1 像素activity保活方案 屏幕关闭的时候打开一个1px的透明的activity,屏幕开启的时候再去finsh掉这个activty即可 OnepxActivity.java public class...() { super.onResume(); checkScreenOn("onResume"); } } OnepxReceiver.java public class

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

    Android:检查通知权限并跳转到通知设置界面

    如果在部分手机中无法精确的跳转到 APP对应的通知设置界面,那么我们就考虑直接跳转到 APP信息界面,对应的Action是: Settings.ACTION_APPLICATION_DETAILS_SETTINGS...对应的Activity是不存在的,比如:锤子坚果3——OC105 API25。...C: 部分国产手机 APP通知设置界面中没有开启和关闭的操作 部分国产手机中 Settings.ACTIONAPPLICATIONDETAILSSETTINGS对应的Activity并不是我们期望的通知设置界面...小米6中 Settings.ACTIONAPPLICATIONDETAILSSETTINGS对应的通知设置界面如下: ? 这完全不是我们需要的界面啊。。。里面并没有我们想要的开关啊。...本来想着通过log确认一下上图中的界面到底是哪个Activity,但非常郁闷的是Log中只得到了 com.android.settings/.SubSettings 这么一个地址,之前没见过这个地址,然后继续搜索

    8.4K30

    Android基础_1 四大基本组件介绍与生命周期

    Activity之间通过Intent进行通信。在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据。     ...然后,系统会在所有安装的应用程序中定义的IntentFilter 中查找,找到最匹配myIntent 的Intent 对应的activity。...然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager 来通知用户。...栈中保存的其实是对象,栈中的Activity 永远不会重排,只会压入或弹出,所以如果发生了诸如需要多个地图浏览器的情况,就会使得一个任务中出现多个同一Activity 子类的实例同时存在。       ...通常用于初始化设置: 1、为Activity设置所要使用的布局文件2、为按钮绑定监听器等静态的设置操作 2.onStart()           当Activity可见、未获得用户焦点、不能交互时,系统会调用

    2.2K30

    Android之Notification介绍

    Notification是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity)警示用户有需要注意的事件发生的最好途径 下面主要介绍这三个类: 一、NotificationManager...像QQ的小企鹅 sound  这个是设置来通知时的提示音。 tickerText  设置提示的文字。 vibrate     来通知时振动。...when       设置来通知时的时间 flag     这个很有意思是设置通知在状态栏显示的方式。...它的值可以设置为虾米这些值: FLAG_NO_CLEAR 将flag设置为这个属性那么通知栏的那个清楚按钮就不会出现 FLAG_ONGOING_EVENT 将flag设置为这个属性那么通知就会像QQ一样一直在状态栏显示...AudioManager中的值,代表着响铃的模式 notification.audioStreamType = android.media.AudioManager.ADJUST_LOWER

    1.4K70

    信息提醒之Notification,兼容全部SDK-更新中

    使用Notification类的setLatestEventInfo方法设置详细信息(改方法已经在6.0废弃,可使用提供的工具类来代替) 使用NotificationManager类的notify方法显示...deleteIntent也需要设置一个PendingIntent类型的变量,由于在清除所有的Notification时调用,可以将这个动作和Activity、Broadcast、Service关联。..., notification); } 如果想响应删除动作的Activity传递数据,可以利用被PendingIntent封装的intent。...这样在Activity中(一般在onCreate方法中)接收解即可 String msg = getIntent().getStringExtra("msg"); ......... ---- 永久存在的...标记声音或者震动一次 * * FLAG_AUTO_CANCEL //在通知栏上点击此通知后自动清除此通知 * * FLAG_NO_CLEAR //将flag设置为这个属性那么通知栏的那个清楚按钮就不会出现

    1.2K20

    android学习笔记----解决兼容8.0以上和8.0之前版本通知栏显示、振动、LED呼吸灯闪烁问题(真机验证)

    然后点击通知管理设置权限,oppo手机默认权限都是关闭的。...设置左上角通知的小图标setSmallIcon()只能使用纯alpha图层的图片进行设置,需要美工实现,具体详解请见这里: https://blog.csdn.net/guolin_blog/article...创建通知渠道的这部分代码,你可以写在MainActivity中,也可以写在Application中,实际上可以写在程序的任何位置,只需要保证在通知弹出之前调用就可以了。...并且创建通知渠道的代码只在第一次执行的时候才会创建,以后每次执行创建代码系统会检测到该通知渠道已经存在了,因此不会重复创建,也并不会影响任何效率。 通知渠道一旦创建之后就不能再通过代码修改了。...在真机上需要手动打开显示横幅的权限,否则设置最大的priority也无效,除非厂家白名单。

    1.1K00

    Android14 适配之——现有 App 安装到 Android14 手机上需要注意些什么?

    ,返回后在 onResume 回调中判断是否权限是否已申请。...,不过得在 Manifest 文件中申请 USE_FULL_SCREEN_INTENT 权限。...可以使用新的 API NotificationManager.canUseFullScreenIntent() 检查应用是否有权限;如果没有,可以用新的 ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT...()) } else { // 打开设置页 val intent = Intent(Settings.ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT)...以上就是本篇的所有内容,主要根据官方文档自己实践操作了一番,可以看出,现有的 App 如果直接安装到 Android14 的手机上,并不会有太多的问题,许多东西其实并不用另外处理,当然建议还是根据本篇内容查漏补缺比较好

    6.1K10

    Android面试题集:以前烂大街的四大组件-Activity,面试重提这些知识点你还记得吗?

    使用方式: 1.可以在在AndroidMainifest的Activity配置进行设置:android:launchMode="启动模式" 2.通过 Intent设置标志位 val intent=Intent...都要移除, SingleTask模式默认具有此标记效果 FLAGACTIVITYEXCLUDEFROMRECENTS:具有该标记的Activity不会出现在历史Activity的列表中,即无法通过历史列表回到该...优先级不同 Intent设置方式的优先级 > Manifest设置方式,即 以前者为准 限定范围不同 Manifest设置方式无法设定 FLAG_ACTIVITY_CLEAR_TOP; Intent设置方式...onResume,onPause之间所经历的是属于前台,这时候用户是可以交互的。 如果新Activity是透明主题时,旧Activity会不会走onStop? 不会!...如果清单文件中没有设置android:configChanges属性时,生命周期:先销毁onPause()、onStop()、onDestroy()再重新创建onCreate()、onStart()、onResume

    97600

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

    文章目录 一、 前台 Service 通知问题 二、 设置 startForeground id 参数为 0 三、 启动相同 id 的第二个前台 Service 关闭通知 1、 前台服务 1 2、 关闭通知栏的服务...startForeground id 参数为 0 ---- 在开启 Service 时 , 调用的 startForeground(0, notification) 方法中 , 传入的第一个参数 id...如果设置为 0 , 此时就不会弹出通知栏 , 但是同样 , 进程会变成后台进程 ; 启动后没有通知 , 按下 Home 键后查询 , 发现该应用就变成了普通后台应用 , 没有进程提权的效果 ;...-- 设置最近任务列表中不显示该 Activity 组件 ( 不要被用户察觉 ) android:excludeFromRecents="true"...设置 Activity 亲和性 让该界面在一个独立的任务栈中 , 不要与本应用的其它任务栈放在一起 避免解除锁屏后 , 关闭 1 像素界面 , 将整个任务栈都唤醒

    2.7K20

    android之NotificationManager服务

    添加了 setPriority() 方法,告知系统该通知应具有的“干扰性”(例如,将其设置为“高”,可使该通知以浮动通知的形式显示)。...Android 8.0(API 级别 26) 现在必须将单个通知放入特定渠道中。 用户现在可以按渠道关闭通知,而不是关闭应用的所有通知。 包含活动通知的应用会在应用图标上方显示通知“标志”。...(小圆点或数字) 用户可以暂停抽屉式通知栏中的通知。您可以为通知设置自动超时。 可以设置通知的背景颜色。...⑥ 文本:此为可选内容,通过 setContentText() 设置。 实战 注意:实验过程中发现在模拟机上可以正常执行,但是真机却执行失败,最后发现真机上需要在设置里,打开通知的权限。...intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); PendingIntent

    1.2K20

    常见Android面试题及答案(详细整理)

    onCreate(): 创建Activity时调用,设置在该方法中,还以Bundle的形式提供对以前存储的任何状态的访问。 onStart(): Activity变为在屏幕上对用户可见时调用。...onResume(): Activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用。...3、设置Activity的android: configChanges=“orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行onConfiguration方法...如何将一个Activity设置成窗口的样式。 答: 第一种方法,在styles.xml文件中,可以新建如下的类似Dialog的style。...在Intent的对象请求中,使用putExtra(“键值对的名字”,”键值对的值”);在另外一个Activity中将Intent中的请求数据取出来: Intent intent = getIntent

    3.4K11

    Android Service学习之本地服务

    Service和其他的应用组件一样,运行在进程的主线程中。这就是说如果service需要很多耗时或者阻塞的操作,需要在其子线程中实现。...如果没有一个条件满足,那么系统将会调用onDestory方法来终止service.所有的清理工作(终止线程,反注册接收器)都在onDestory中完成。...如果service可以使用startForeground(int, Notification)方法来将service设置为前台状态,那么系统就认为是对用户可见的,并不会在内存不足时killed。...如果有其他的应用组件作为Service,Activity等运行在相同的进程中,那么将会增加该进程的重要性。...intent-filter> activity> 这里没什么特别的,因为service没有需要什么特别的action,所以只是声明service而已,而activity和普通的没差别。

    98650

    Android Notification

    通知一般通过NotificationManager服务发送一个Notification对象来完成通知,NotificationManager是一个重要的系统级服务,该对象位于应用程序的框架层中,应用程序可以通过它向系统发送全局的通知...在Activity中,可以使用Activity.getSystemService(String)方法获取NotificationManager对象,Activity.getSystemService(String...虽然通知中提供了各种属性的设置,但是一个通知对象,有几个属性是必须要设置的,其他的属性均是可选的,必须设置的属性如下: 小图标,使用setSamllIcon()方法设置。...Ticker 设置时间 这个可设可不设,默认也会取系统时间 setWhen(System.currentTimeMillis()) 点击自动移除 这个最好还是设置成true,我自己测试的手机默认是不会自动移除的...number 设置数据 这个数据主要是携带给跳转Activity用的,比如我们推送了一部小说,携带了小说id等重要信息,用户点击后可以跳转对应的小说详情去。

    2K20

    Service 使用详解

    #####阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: Service 简介 四大组件之一...1.启动模式 此模式通过 startService()方法启动,此服务可以在后台一直运行,不会随启动组件的消亡而消亡。只能执行单一操作,无法返回结果给调用方,常用于网络下载、上传文件,播放音乐等。...2.绑定模式 此模式 通过绑定组件(Activity等)调用 bindService() 启动,此服务随绑定组件的消亡而解除绑定。... 注意: Service如不注册 ,不会像Activity那样会导致App Crash,Service 不注册 不会报异常信息,但是服务会起不来,如不注意很容易迷惑...intent, int flags, int startId) { Log.i(TAG, "----onStartCommand----"); // 获取NotificationManager

    87750
    领券