首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
更木小八
掘友等级
Android 开发工程师
行者无疆,思者无界,心之所向,无疆无界
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
赞
163
文章 156
沸点 7
赞
163
返回
|
搜索文章
文章
热门
最新
JobScheduler之源码分析
接下来我们从源码角度去深入理解JobScheduler的运行机制。 该方法的核心逻辑是遍历所有的StateController并执行其maybeStartTrackingJob方法。 JobSchedulerService使用一个名为mControllers的变量保存State…
JobScheduler之重试机制
通过前面的学习,我们知道如果Job需要进行重试,那么会在JobSchedulerService.onJobCompleted方法中生成一个新的JobStatus实例,然后重新执行任务。 新创建的JobStatus对象相对于老对象主要更新了一下最早执行时间和最晚执行时间(dead…
JobScheduler之超时检查
JobServiceContext与JobService交互的过程中会JobServiceContext会进行超时检查,下面我们来看看超时检查是怎么做的。 可以发现,JobService在执行每一步操作的时候都会有超时检查。 该方法会直接解绑JobService,我们之前讲过了…
JobScheduler之入门
今天我们来学习另一种解决方案:JobScheduler。 JobScheduler是在Android 5.0添加的,它可以检测网络状态、设备是否充电中、低电量、低存储等状态,当所有条件都满足时就会触发执行对应的JobService来完成任务。同时具备了重试、定时执行、持久化任务…
为什么View.post方法可以用来获取视图尺寸
之所以会出现这篇文章,是因为最近用到了这个方法。 最开始我用的是Activity.runOnUiThread和Handler.post这两个方法,但是发现获取到的视图尺寸为0,而只有View.post才能得到我想要的结果,这让我觉得自己对View.post这个方法的理解还不充分…
Fragment生命周期
通过对Fragment生命周期的变化的观察,我们可以很容易发现,add/remove操作会引起Fragment在INITIALIZING和RESUMED这两个状态之间迁移。 而attach/detach操作会引起Fragment在CREATED和RESUMED这两个状态之间迁移…
Broadcast之goAsync方法
简单来说,goAsync提供了一种机制,让我们可以在异步线程中处理广播消息,以防止主线程被阻塞。 我们知道AMS是通过跨进程调用ApplicationThread来实现调用广播的onReceive方法。 在正式开始介绍goAsync之前,ApplicationThread内部的…
Broadcast之前/后台广播队列
ActivityManagerService中有两个广播队列:mFgBroadcastQueue和mBgBroadcastQueue。它们都是BroadcastQueue的实例,只不过初始化时的入参有些不一样。 1. 区别 可以看到前台广播与后台广播主要用三个方面的区别:名称、…
Broadcast发送流程
Context提供了多种方法来发送广播,sendBroadcast、sendOrderedBroadcast、sendStickyBroadcast、sendStickyOrderedBroadcast等等,最终都是调用的ActivityManagerService.broad…
Broadcast注册流程
广播注册分为两种:动态注册、静态注册。 静态注册只需要在Manifest文件中声明即可。 而动态注册则需要通过Context.registerReceiver方法进行注册。下面我们分析一下动态注册的过程。 动态注册通过调用Context.registerReceiver方法实现…
下一页
个人成就
文章被点赞
118
文章被阅读
50,883
掘力值
957
关注了
28
关注者
19
收藏集
8
关注标签
14
加入于
2016-08-27