EvenBus

原创 2015年11月19日 09:51:13


package com.example.eventbustest;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// setContentView(R.layout.activity_main);
		// text = (TextView) findViewById(R.id.text);

		// EventBus.getDefault().register(this);

		task();

		Intent intent = new Intent(this, MyAppService.class);
		startService(intent);
	}

	@Override
	public void onDestroy() {
		super.onDestroy();

		Intent intent = new Intent(this, MyAppService.class);
		stopService(intent);
	}

	private void task() {
		new Thread(new Runnable() {

			@Override
			public void run() {
				
				try {
					Thread.sleep(3000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}

				for (int i = 0; i < 100; i++) {

					MyEvent event = new MyEvent();
					event.id = i;
					event.content = "hello,world !" + i;

					EventBus.getDefault().post(event);

					try {
						Thread.sleep(2000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}

			}
		}).start();
	}
}


package com.example.eventbustest;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;

public class MyAppService extends Service{



		// 仅仅create一次
		@Override
		public void onCreate() {
			EventBus.getDefault().register(this);
		}

		// @Override
		// public int onStartCommand(Intent intent, int flags, int startId) {
		// return super.onStartCommand(intent, flags, startId);
		// }

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

		@Override
		public IBinder onBind(Intent intent) {
			return null;
		}

		// 这里,EventBus回调接受消息,然后更新Main UI的TextView
		public void onEventMainThread(MyEvent event) {
			Log.d(this.getClass().getName(),
					"onEventMainThread:" + event.toString());
		}

		// EventBus回调接受消息
		public void onEventBackgroundThread(MyEvent event) {
			Log.d(this.getClass().getName(),
					"onEventBackgroundThread:" + event.toString());
		}

		// EventBus回调接受消息
		public void onEventAsync(MyEvent event) {
			Log.d(this.getClass().getName(), "onEventAsync:" + event.toString());
		}
	

}


package com.example.eventbustest;

public class MyEvent {
	public int id;
	public	String content;
	
	@Override
	public	String	toString(){
		return	content;
	}
}

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   
    tools:context="com.example.eventbustest.MainActivity" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="162dp"
        android:layout_toRightOf="@+id/text"
        android:text="启动Service" />

</RelativeLayout>



版权声明:本文为博主原创文章,未经博主允许不得转载。

EvenBus3.0中文翻译(三)Delivery Threads (ThreadMode)

水平有限,仅供参考 原文地址 Delivery Threads (ThreadMode) 线程模式 EventBus can handle threading for you: events ca...

Evenbus 3.0 分析

前言:EvenBus 很火,不知道什么时候开始,自定义生成模板代替注解。EvenBus 3.0 同样支持了这种预编译处理注解机制。Annotation processor indexes annota...

EvenBus:Android应用组件之间高效通信的开发库

当一个Android应用功能越来越多的时候,保证应用的各个部分之间高效的通信将变得越来越困难。如何优雅地解决这个问题?这时候,就需要使用到EventBus。 EventBus是GreenRobot出...
  • dsa63
  • dsa63
  • 2014年09月04日 09:54
  • 756

EvenBus 避免跳进大坑

现在界面之间传递数据不再使用Intent Bundle了,因为很多时候那种方式并没有那么灵活,而且还很可能无法传递你想传递的数据,比如复杂的json,比如List>  这种类型。那么该怎么办呢,现在就...

Android TextInputLayout更好看的输入框加EvenBus传值

Android TextInputLayout更好看的输入框加EvenBus传值

android——EvenBus3.0详细使用指南

前言 EventBus和RxJava类似是一款针对Android优化的发布-订阅事件总线。使用的是Android原生的 android.database.Observable也能实现,但是使用Obse...

EvenBus的使用,(详解)

1.什么是evenBus? evenBus是一款针对 android 优化的发布/订阅事件总线。主要功能是代替Intent handler Broacaset 在fragement activi...

使用RxBus替换EvenBus

//在android studio中导入rxjava的jar包, 我本人用的是当前版本的compile 'io.reactivex:rxjava:1.3.0' compile 'io.reactive...

EvenBus3.0 中文翻译(-)How to get started with EventBus in 3 steps

水平有限,仅供参考 原文地址 How to get started with EventBus in 3 steps 如何开始EventBus只需3步 EventBus’ API is as eas...

EvenBus3.0中文翻译(四)Sticky Events

水平有限,仅供参考 原文地址 Sticky Events Sticky 事件 Some events carry information that is of interest after the ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:EvenBus
举报原因:
原因补充:

(最多只允许输入30个字)