1. 程式人生 > >EventBus 頁面傳值並啟動Activity

EventBus 頁面傳值並啟動Activity

使用EventBus 對於程式控制很方便,但是一直有一種情況用不了EventBus,就是在事件的接收方還沒有啟動的情況下怎麼發廣播: 如有A,B, 兩個Activity , App當前處在 A Activity 現在要向B傳遞一個值並且啟動B Activity, 正常情況下在A 傳送 EventBus.getDefault().post(new Event()); 但是有一個問題,此時B還沒有啟動, B也沒辦法成功接收這個事件。那怎麼解決:


public class AActivity extends Activity {
  // 某個點選事件
  @Override 
  public
void onClick(View v) { Event event= new Event(10); // 釋出Sticky事件 EventBus.getDefault().postSticky(event); // 跳轉到B頁面 Intent intent = new Intent(this, BActivity.class); startActivity(intent); } } 最後我們看看BActivity如何接收資料。 public class BActivity extends Activity { @Override protected
void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_b); // 以Sticky的形式註冊 EventBus.getDefault().registerSticky(this); } @Subscriber private void receiveUser(Event event){ // 這裡實現你的邏輯即可, event即為傳遞過來的Event物件 } }