Mr.Anler

I will be fine.


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

EventBus3.0源码解析

发表于 2016-07-14   |   分类于 源码分析

1.概述

在EventBus3.0中 和 2.0 有这不小的变化。
先看看如何在项目中使用EvetBus3.0吧。
一般的基本使用大都这样子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}

@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}

@Subscribe(sticky = true, threadMode = ThreadMode.MAIN) //在ui线程执行
public void onMainEvent(UserDetail userInfo) {

}

@Subscribe(threadMode = ThreadMode.ASYNC) //异步执行
public void onAsynclEvent(UserDetail userInfo) {

}

@Subscribe( threadMode = ThreadMode.POSTING) //直接执行
public void onPostingEvent(UserDetail userInfo) {

}

@Subscribe(threadMode = ThreadMode.BACKGROUND) //后台执行
public void onBackgroundEvent(UserDetail userInfo) {

}

在3.0版本的EventBus上,不再限制函数名字,只需在你想要接收函数上方加上注解@Subscribe即可,再根据需求添加相应的threadMode(里面的标志将决定该方法运行在哪个线程),如果希望可以延迟接收,则可以加上sticky = true的标志。

再说注册后,如何发送event。

1
2
3
EventBus.getDefault().postSticky(mUserDetail);
//或者
EventBus.getDefault().post(mUserDetail);

发出去之后,数据就可以在接收函数里处理了。

阅读全文 »

AsyncTask源码分析

发表于 2016-06-14   |   分类于 源码分析

网上已经有太多的AsyncTask源码分析,而且大牛们都写的比我好,但是我还是决定尝试自己写一篇,因为这是我第一次尝试去阅读源码,写这篇blog的目的是为了巩固下。

正文

AsyncTask 需要传入三个泛型参数,分别是表示传入的参数Params, 用于表示进度的Progress,和返回结果Result。
一个简单的模版:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class DownloadTask extends AsyncTask<Void, Integer, Boolean> {  

@Override
protected void onPreExecute() {
//用于任务执行前的UI操作
}

@Override
protected Boolean doInBackground(Void... params) {

//后台费时任务的 执行
}

@Override
protected void onProgressUpdate(Integer... values) {
//用于后台任务的执行中反馈 进度到UI界面
}

@Override
protected void onPostExecute(Boolean result) {
//任务结束后,对UI的操作
}
}

以下开始分析源码:

阅读全文 »

hello world

发表于 2016-05-12   |   分类于 日志

很久之前,看到别人新建的blog,就很想拥有一个自己的blog,但是拖延症犯了,从建好主页到细节的编写,一直拖了1个多月,今天终于弄的差不多了,写了第一篇blog hello world,就像5年前第一次在vc上敲下的第一句话一样.

1
2
3
4
void main()
{

cout<<"hello world!"<<endl;
}

送给自己一句话。

岁月易老,勿忘初心

Anler

Anler

一个孤独的Boy,努力爬坑ing。

3 日志
2 分类
3 标签
GitHub
© 2016 Anler
由 Hexo 强力驱动
主题 - NexT.Mist