EventBus下载地址https://github.com/greenrobot/EventBus
MyEvent:
1 package com.zzw.testeventbus; 2 3 public class MyEvent { 4 public int id; 5 public String content; 6 7 public MyEvent() { 8 super(); 9 10 }11 12 Override13 public String toString() {14 return "MyEvent [id" id ", content" content "]";15 }16 17 } MyEvent
MainActivity
1 package com.zzw.testeventbus; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.graphics.Color; 6 import android.os.Bundle; 7 import android.util.Log; 8 import android.view.View; 9 import android.view.View.OnClickListener;10 import android.widget.TextView;11 import de.greenrobot.event.EventBus;12 13 public class MainActivity extends Activity {14 TextView tv;15 public static final String TAG "MainActivity";16 17 Override18 protected void onCreate(Bundle savedInstanceState) {19 super.onCreate(savedInstanceState);20 setContentView(R.layout.activity_main);21 tv (TextView) findViewById(R.id.tv);22 23 EventBus.getDefault().register(this);24 25 findViewById(R.id.bt).setOnClickListener(new OnClickListener() {26 Override27 public void onClick(View v) {28 Intent intent new Intent(MainActivity.this, EventService.class);29 startService(intent);30 }31 });32 }33 // Main线程这个与Android UI线程密切相关可以在里面设置UI值不要阻塞它34 public void onEventMainThread(MyEvent event) {35 Log.d(TAG "--" "onEventMainThread", event.toString());36 tv.setText(event.content);37 int id event.id % 3;38 if (id 0) {39 tv.setTextColor(Color.RED);40 } else if (id 1) {41 tv.setTextColor(Color.GREEN);42 } else if (id 2) {43 tv.setTextColor(Color.BLUE);44 }45 }46 47 // 后台线程中接收处理48 public void onEventBackgroundThread(MyEvent event) {49 Log.e(TAG "--" "onEventBackgroundThread", event.toString());50 }51 52 // 异步线程中接收处理53 public void onEventAsync(MyEvent event) {54 Log.i(TAG "--" "onEventAsync", event.toString());55 }56 57 Override58 protected void onDestroy() {59 EventBus.getDefault().unregister(this);60 }61 }
EventService:
1 package com.zzw.testeventbus; 2 3 import android.app.Service; 4 import android.content.Intent; 5 import android.os.IBinder; 6 import android.os.SystemClock; 7 import de.greenrobot.event.EventBus; 8 9 public class EventService extends Service {10 11 Override12 public void onCreate() {13 14 super.onCreate();15 }16 17 private void task() {18 new Thread(new Runnable() {19 20 Override21 public void run() {22 for (int i 1; i < 100; i) {23 MyEvent event new MyEvent();24 event.id i;25 event.content "傻逼" i;26 EventBus.getDefault().post(event);27 SystemClock.sleep(1000);28 }29 }30 }).start();31 }32 33 Override34 public int onStartCommand(Intent intent, int flags, int startId) {35 task();36 return super.onStartCommand(intent, flags, startId);37 }38 39 Override40 public void onDestroy() {41 super.onDestroy();42 }43 44 Override45 public IBinder onBind(Intent intent) {46 return null;47 }48 49 }
转:https://www.cnblogs.com/zzw1994/p/4953655.html