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

网易考拉 Android 通知栏适配全方案

点击查看大图 通知栏更新频率 问题详情 每个应用基本都有自更新的逻辑,App开机的时候提示用户升级,点击升级按钮后在Notification出现一个下载带进度条的通知。...应用一般是在开启一个工作线程在后台下载,然后在下载的过程中通过回调更新通知栏中的进度条。...我们知道,下载进度的快慢是不可控的,如果每次下载中的回调都去更新通知栏,那么可能几百毫秒、几十毫秒、甚至几毫秒就更新一次通知栏,应用可能就会ANR,甚至崩溃。...解决方案 控制通知栏更新频率,一般控制在0.5s或者1s就可以了。在某一个更新时间间隔内下载的进度回调直接丢弃,需要注意的是下载完成的回调,需要实时回调通知栏消息显示下载完成。...然而有个问题,小米认为应用在前台时,不会回调任何方法;小米认为应用在后台的时候,收到通知栏消息的同时,会回调onNotificationMessageArrived方法。

5.2K11

京东金融客户端用户触达方式的精细化探索与实践

⑥解决Push消息连续点击重复跳转问题 当用户快速、连续点击一条通知时,会触发 app 中指定回调方法对通知点击事件多次响应。...②设置appWidget 的基本属性 AppWidgetProviderInfo定义了widget的基本特性,如应用微件的最小布局尺寸、应用微件的初始布局资源、应用微件的更新频率,以及(可选)在应用微件创建时启动的配置...获取widget id 执行应用微件配置 配置完成后,通过调用 getInstance(Context) 来获取 AppWidgetManager 的实例 通过调用 updateAppWidget(int..., RemoteViews) 来使用 RemoteViews 布局更新应用微件 最后,创建返回 Intent,为其设置 Activity 结果,然后结束该 Activity 设置预览图片,在选择创建appWidget...请求集合中的特定项目时,RemoteViewsFactory 会为集合创建相应项目并将其作为 RemoteViews 对象返回。

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

    【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介 | 使用方法 | AsyncTask 源码分析 )

    () : 调用 publishProgress() 回调的方法 , 主线程 中执行 , 可更新 UI 界面 ; onPostExecute() : doInBackground() 执行完毕后再执行的方法..., 主线程 中执行 , 可更新 UI 界面 ; 三、AsyncTask 基本用法 ---- AsyncTask 使用注意点 : UI 线程创建 UI 线程调用执行 execute() 创建后只能执行一次...... values) { // 在 doInBackground 中调用了 publishProgress 方法, 就会回调该方法 // 一般情况下是在该方法中执行更新...onPostExecute(Boolean aBoolean) { // doInBackground 执行完毕后 , 调用 return 方法后 , 该方法会被调用 ( 主线程, 可以更新...构造函数源码解析 ---- AsyncTask 构造函数作用 : 创建一个新的异步任务 , 该构造函数必须在 UI 主线程调用 ; 构造函数中做了三件事 : 获取 Handler : 该 Handler

    74300

    2.下拉刷新、二维码

    网络引擎的封装 不通网络请求封装到CloudEngine.class中,以方法的形式暴露; 所有网络请求结果的处理.通过接口方法回调回来; 接口回调 handler机制+thread 怎么理解接口回调...-->接口回调就是一个通知机制 作用:1.单纯的通知 2.通知+传值 步骤: 1.定义接口,以及接口方法 2.定义接口对象 3.在某一个地方.接口对象调用接口方法 4.暴露接口对象(构造方法,setter...MAXIMUM_POOLSIZE KEEPALIVE在不同的版本上.值是不一样; 1.5前是串行执行的.每次执行1个任务 1.6-2.3之前的版本.是并行执行的.每次执行5个任务 3.0后提供串行和并行..., null);//并行 AsyncTask简单封装 实际开发我们会去继承Asynctask AsyncTask函数化的封装,AsyncTask函数式的调用 接口回调实例 //1....二维码横竖屏切换 图片横着切 二维码动画 仿微信扫描效果 使用zxing扫描二维码 认识二维码 二维码的范围 二维码容错级别 二维码嵌入logo 使用 先找到按钮,然后调用 //1.启动扫描界面

    91470

    从编程小白到全栈开发:理解异步

    前者的过程就是“同步”,而后者则是“异步”了。 所以,在同步处理情况下:在开始做一件事情之后,当前事情就会阻止其他事情的进展,只有当这件事情完成,才能继续其他事情: ?...同步处理 而异步处理则是:在一件事情开始后,不会等待它的完成,可以立即去做其他的事情,等之前那事情完成后,会以某种通知方式告知它已完成: ?...很早之前的网页,页面如果要从服务器更新数据的话,都需要重新向服务器请求,然后服务器发回更新后的整个HTML页面,这种情况在页面变动比较少的时候,浪费是很大的,重复传输和加载了很多页面内容。...这说明了,在异步任务asyncTask1和asyncTask2执行后,其后的task1不会对它们进行等待,而是立即就接着执行了,这就是异步的特性。...所谓回调机制,即把下一步要执行的函数,当做参数传入任务函数,在任务函数中需要的位置进行调用。

    67230

    Android面试大纲(集合)

    ()方法,拿到Proxy代理类 通过调用Proxy代理类的方法,将参数进行封包后,调用底层的transact()方法 transact()方法会回调onTransact()方法,进行参数的解封 在onTransact...():当doInBackground中调用publishProgress时回调,在主线程中执行 onPostExecute():在异步任务执行之后回调,在主线程中执行 onCancelled():在异步任务被取消时回调...更新无效 7、AsyncTask并行or串行 AsyncTask在Android 2.3之前默认采用并行执行任务,AsyncTask在Android 2.3之后默认采用串行执行任务 如果需要在Android...另外,可以多次启动IntentService,每个耗时操作都会以工作队列的方式在IntentService中onHandlerIntent()回调方法中执行,并且每次只会执行一个工作线程 2、IntentService...Service默认执行在主线程中 BoardcastReceiver的回调onReceive()执行在主线程中 AsyncTask的回调除了doInBackground,其他都是在主线程中 没有使用子线程

    1.1K20

    创造无限可能 | 在 Android 12 中使用 widget

    本文是 "更新 Android 12 中 widget" 系列的第二篇文章。在上一部分 我们探讨了通过一些简单的方法,为 APP 用户呈现出非常显性的视觉更新。.... /> xml/app_widget_info_checkbox_list.xml 基于此更改,当用户将 widget 添加至主屏幕时,该 widget 会自动启用 Grocery List 布局。...当定义了 targetCellWidth 和 targetCellHeight 属性后,搭载 Android 12 的设备将使用这些属性,而非 minWidth 和 minHeight。...我们也正在做 androidx 的回传工作,以确保该 API 在旧 Android 版本上仍然生效。...现在您已经在这篇文章中了解到可配置的、新的或是改进中的 API,请查阅我们之前的推文《更新您的 widget 以适配 Android 12》,了解更新 widget 设计以及在 widget picker

    1.6K20

    Android性能优化典范之多线程篇

    HandlerThread: 为某些回调方法或者等待某些任务的执行设置一个专属的线程,并提供线程任务的调度机制。...如果这些细节都交给我们自己来处理,这将会是件极其繁琐又容易出错的事情。...如果这个回调方法执行在 UI 线程,那么在 onPreviewFrame()里面将要执行的数据转换操作将和主线程的界面绘制,事件传递等操作争抢系统资源,这就有可能影响到主界面的表现性能。...回到刚才的处理相机回调数据的例子,使用 HandlerThread 我们可以把 open()操作与 onPreviewFrame()的操作执行在同一个线程,同时还避免了 AsyncTask 的弊端。...IntentService 继承自普通 Service 同时又在内部创建了一个 HandlerThread,在 onHandlerIntent()的回调里面处理扔到 IntentService 的任务。

    1.3K11

    使用AsyncTask异步更新UI界面及原理分析

    AsyncTask的内部实现是一个线程池,所有提交的异步任务都会在这个线程池中的工作线程内执行,当工作线程需要跟UI线程交互时,工作线程会通过向在UI线程创建的Handler传递消息的方式,调用相关的回调函数...AsyncTask抽象出后台线程运行的五个状态,分别是:1、准备运行,2、正在后台运行,3、进度更新,4、完成后台任务,5、取消任务,对于这五个阶段,AsyncTask提供了五个回调函数: 1、准备运行...AsyncTask并不总是需要使用上面的全部3种类型。标识不使用的类型很简单,只需要使用Void类型即可。 例子:从网络上下载图片,下载完成后在UI界面上显示出来,并会模拟下载进度更新。...会调用自身相应的回调方法。...,并调用相关的回调函数

    1.4K110

    面试官让我回去把基础搞扎实,含泪狂刷Android基础面试118题

    3、横竖屏切换时候Activity的生命周期 4、AsyncTask的缺陷和问题,说说他的原理。...17、Thread、AsyncTask、IntentService的使用场景与特点。 18、Merge、ViewStub 的作用。...49、如何计算一个Bitmap占用内存的大小,怎么保证加载Bitmap不产生内存溢出? 50、对于应用更新这块是如何做的?(灰度,强制更新,分区域更新) 51、请解释安卓为啥要加签名机制。...100、Debug和Release状态的不同 101、dp是什么,sp呢,有什么区别 102、自定义View,ViewGroup注意那些回调?...以上内容均放在了开源项目:【github】 中已收录,里面包含不同方向的自学Android路线、面试题集合/面经、及系列技术文章等,资源持续更新中...

    55220

    下拉刷新、二维码

    下拉刷新 网络引擎的封装 不通网络请求封装到CloudEngine.class中,以方法的形式暴露; 所有网络请求结果的处理.通过接口方法回调回来; 接口回调 handler机制+thread 怎么理解接口回调...-->接口回调就是一个通知机制 作用:1.单纯的通知 2.通知+传值 步骤: 1.定义接口,以及接口方法 2.定义接口对象 3.在某一个地方.接口对象调用接口方法 4.暴露接口对象(构造方法,setter...MAXIMUM_POOLALIVE在不同的版本上.值是不一样; 1.5前是串行执行的.每次执行1个任务 1.6-2.3之前的版本.是并行执行的.每次执行5个任务 AsyncTask简单封装 实际开发我们会去继承...Asynctask AsyncTask函数化的封装,AsyncTask函数式的调用 接口回调实例 //1....二维码横竖屏切换 图片横着切 二维码动画 仿微信扫描效果 使用zxing扫描二维码 认识二维码 二维码的范围 二维码容错级别 二维码嵌入logo 使用 先找到按钮,然后调用 //1.启动扫描界面

    37820

    【Android 电量优化】电量优化 ( JobScheduler | JobService | AsyncTask )

    省略部分代码 } 二、AsyncTask 简介 ---- 在 JobScheduler 提交任务后 , 系统会在 JobService 中执行相应的任务 , 执行的时机由系统选择 ; 系统回调 JobService...: 主要的耗时操作是在该方法中执行的 ( 非主线程, 不能更新 UI ) onProgressUpdate : 在 doInBackground 中调用了 publishProgress 方法, 就会回调该方法..., 一般情况下是在该方法中执行更新 UI 的操作 ( 主线程, 可以更新 UI ) onPostExecute : doInBackground 执行完毕后 , 调用 return 方法后 , 该方法会被调用...添加任务 : 在一个第三方 Service 服务中 , 调用 JobScheduleManager 类添加任务 , 系统会自动回调分配执行任务 , 在 JobService 中的 onStartJob...doInBackground 中调用了 publishProgress 方法, 就会回调该方法 * 一般情况下是在该方法中执行更新 UI 的操作 * ( 主线程, 可以更新

    1.3K00

    高能!美团出品2020最新 “Android 面试必备宝典”,从基础到原理,一应俱全

    前台切换到后台,然后再回到前台,Activity 生命周期回调方法 Activity 的四种启动模式对比 Activity 状态保存于恢复 fragment 各种情况下的生命周期是如何管理的 Service...LinearLayout、RelativeLayout、FrameLayout 的特性及对比,并 介绍使用场景 谈谈对接口与回调的理解 介绍下 SurfceView,它的应用场景是怎样的,它与普通 View...View 和 ViewGroup 分别有哪些事件分发相关的回调方法 View 刷新机制 View 绘制流程 自定义控件原理 自定义 View 如何提供获取 View 属性的接口?...Android 代码中实现 WAP 方式联网 AsyncTask 机制 AsyncTask 原理及不足 如何取消 AsyncTask? 为什么不能在子线程更新 UI? ANR 产生的原因是什么?...这里也分享给广大面试同胞们,希望每位程序猿们都能面试成功~ 以上内容均放在了开源项目:我的github 中已收录,里面包含不同方向的自学Android路线、面试题集合/面经、及系列技术文章等,资源持续更新中

    67301

    js面试跳跳题二

    但它们是异步的,互相之间并不阻塞,每个任务完成时机是不确定的,尽管如此,所有任务结束之 后,它们的结果仍然是按顺序地映射到resultList里,这样就能和Promise.all里的任务列表[asyncTask...(pending)异步任务,进入“任务队列”(task queue),在该异步任务返回结果的时候再根据一定规则去执行相应的回调 只要主线程空了,就会去读取"任务队列",这就是JavaScript的运行机制...事件和回调函数 所谓"回调函数"(callback),就是那些会被主线程挂起来的代码。异步任务必须指定回调函数,当主线程开始执行异步任务,就是执行对应的回调函数。...),执行完执行栈上的同步任务后再执行任务队列里面的微任务,然后再执行任务队列的宏任务,然后一直循环== async/await 的执行 async 和 await 其实就是 Generator 和 Promise...then中的第二个回调,如果then中没有写第二个回调,则进入catch js中浮点类型的计算 0.1 + 0.2 > 0.3 JS 采用 IEEE 754双精度版本 什么是链表,链表和数组有什么区别?

    17920

    最全的BAT大厂面试题整理

    前台切换到后台,然后再回到前台,Activity生命周期回调方法。弹出Dialog,生命值周期回调方法。...谈谈对接口与回调的理解 回调的原理 写一个回调demo 介绍下SurfView RecycleView的使用 序列化的作用,以及Android两种序列化的区别 差值器 估值器 Android中数据存储方式...View和ViewGroup分别有哪些事件分发相关的回调方法 View刷新机制 View绘制流程 自定义控件原理 自定义View如何提供获取View属性的接口?...Android代码中实现WAP方式联网 AsyncTask机制 AsyncTask原理及不足 如何取消AsyncTask? 为什么不能在子线程更新UI? ANR产生的原因是什么?...微信主页面的实现方式 微信上消息小红点的原理 CAS介绍(这是阿里巴巴的面试题,我不是很了解,可以参考博客: CAS简介) ---- 三、混合开发面试题 大厂除了技术深度之外,还要求你具备一些广度的知识

    1.1K20
    领券