传递消息--第三方开源--EventBus的简单使用
EventBus下载地址:https://github.com/greenrobot/EventBus
MyEvent:
package com.zzw.testeventbus;
public class MyEvent {
public int id;
public String content;
public MyEvent() {
super();
}
@Override
public String toString() {
return "MyEvent [id=" + id + ", content=" + content + "]";
}
}
MyEvent
MainActivity:
package com.zzw.testeventbus; import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import de.greenrobot.event.EventBus; public class MainActivity extends Activity {
TextView tv;
public static final String TAG = "MainActivity"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv); EventBus.getDefault().register(this); findViewById(R.id.bt).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, EventService.class);
startService(intent);
}
});
}
// Main线程,这个与Android UI线程密切相关,可以在里面设置UI值,不要阻塞它!
public void onEventMainThread(MyEvent event) {
Log.d(TAG + "--" + "onEventMainThread", event.toString());
tv.setText(event.content);
int id = event.id % 3;
if (id == 0) {
tv.setTextColor(Color.RED);
} else if (id == 1) {
tv.setTextColor(Color.GREEN);
} else if (id == 2) {
tv.setTextColor(Color.BLUE);
}
} // 后台线程中接收处理
public void onEventBackgroundThread(MyEvent event) {
Log.e(TAG + "--" + "onEventBackgroundThread", event.toString());
} // 异步线程中接收处理
public void onEventAsync(MyEvent event) {
Log.i(TAG + "--" + "onEventAsync", event.toString());
} @Override
protected void onDestroy() {
EventBus.getDefault().unregister(this);
}
}
EventService:
package com.zzw.testeventbus; import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.SystemClock;
import de.greenrobot.event.EventBus; public class EventService extends Service { @Override
public void onCreate() { super.onCreate();
} private void task() {
new Thread(new Runnable() { @Override
public void run() {
for (int i = 1; i <= 100; i++) {
MyEvent event = new MyEvent();
event.id = i;
event.content = "傻逼" + i;
EventBus.getDefault().post(event);
SystemClock.sleep(1000);
}
}
}).start();
} @Override
public int onStartCommand(Intent intent, int flags, int startId) {
task();
return super.onStartCommand(intent, flags, startId);
} @Override
public void onDestroy() {
super.onDestroy();
} @Override
public IBinder onBind(Intent intent) {
return null;
} }
传递消息--第三方开源--EventBus的简单使用的更多相关文章
- Android消息通信 第三方开源项目EventBus 的用法
EventBus是github上的一个第三方开发库,其在github上的项目主页地址:https://github.com/greenrobot/EventBus EventBus的消息模型是消息发布 ...
- 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发
[原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http: ...
- 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位网友补充完善
链接地址:http://www.tuicool.com/articles/jyA3MrU 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http://blog.cs ...
- Android之史上最全最简单最有用的第三方开源库收集整理
Android开源库 自己一直很喜欢Android开发,就如博客签名一样, 我是程序猿,我为自己代言 . 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者, ...
- Android第三方开源对话消息提示框:SweetAlertDialog(sweet-alert-dialog)
Android第三方开源对话消息提示框:SweetAlertDialog(sweet-alert-dialog) Android第三方开源对话消息提示框:SweetAlertDialog(sweet- ...
- QQ消息99+形成--第三方开源--BezierView
Android第三方开源的BezierView实现了上述QQ的99+条未读消息气泡显示.Android开源BezierView在github上的项目主页是:https://github.com/che ...
- GitHub 上排名前 100 的 Android 开源库进行简单的介绍
若有任何疑问可通过邮件或微博联系我 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开 ...
- 我的Android进阶之旅】GitHub 上排名前 100 的 Android 开源库进行简单的介绍
GitHub Android Libraries Top 100 简介 本文转载于:https://github.com/Freelander/Android_Data/blob/master/And ...
- EventBus的简单使用与原理
一.概述 EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间 ...
随机推荐
- VS2015发布Webservice
第一步:开启IIs:在控制面板程序——>程序功能——>打开或关闭windows功能,把“Internet信息服务”下面的“FTP服务器”.“Web管理工具”.“万维网服务”全部勾上,然后点 ...
- 关于android初学者必须掌握的Activity的四大知识点
这几天一直都在捣鼓android的知识点,兴趣班的老师,讲课太过深奥,天(想到什么就见什么,后后面完全不想听),最后自己找资料总结了在Android学习中很重要的一个组件Activity,那就开始吧! ...
- rabbitmq-server启动不了,安装erlang,安装rabbitmq-server
sudo rabbitmq-server start,虽然现实success,但是查看状态,sudo rabbitmq-server status发现居然没有启动,报错是不是端口占用(查看日志/var ...
- HTTPS(SSL/TLS) 原理之深入浅出
注:本文参考自网络上的多篇HTTPS相关文章,本人根据自己的理解,进行一些修改,综合. 1. 必要的加密解密基础知识 1)对称加密算法:就是加密和解密使用同一个密钥的加密算法.因为加密方和解密方使用的 ...
- 使用Sqoop,最终导入到hive中的数据和原数据库中数据不一致解决办法
Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL , ...
- oracle 创建字段自增长——两种实现方式汇总
mysql等其他数据库中有随着记录的插入而表ID自动增长的功能,而oracle却没有这样的功能,我们有以下两种方式可以解决字段自增长的功能. 因为两种方式都需要通过创建序列来实现,这里先给出序列的创建 ...
- Android中的Shape使用总结
参考:http://www.cnblogs.com/gzggyy/archive/2013/05/17/3083218.html 在Android程序开发中,我们经常会去用到Shape这个东西去定义各 ...
- jdk环境搭建
win7+jdk环境变量配置 进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:1.下载jdk(http://java.sun.com/javase/downloads/inde ...
- C++ sort函数
(一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于 ...
- loop指令
loop系列的指令有:loop,loope/loopz,loopne/loopnz,它们都是借助于ECX寄存器作为计数来实现循环,每轮循环先ecx自动减1,再来判断ecx值,ecx的自减不会影响OF和 ...