android eventbus

4649 단어
소재지https://github.com/greenrobot/EventBus
일반적으로 상위 페이지의 데이터 자동 리셋 등에 사용된다.
사실 은 매우 간단한 것 으로 관찰자 모델, 메커니즘 의 일종 의 실현 이다
다음은 바로 이것입니다. 틀림없이 모두 익숙할 것입니다.
 btnGetText.setOnClickListener(new View.OnClickListener() { 
            public void onClick(View v) { 

         } 
            }); 

기본 사용 방법 EventBusActivity 등록
public class EventBusActivity extends Activity {
    TextView  qiehuan ; 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_event1);
         EventBus.getDefault().register(this);  
         qiehuan = (TextView)findViewById(R.id.qiehuan);        
         qiehuan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 // TODO Auto-generated method stub
                startActivity(new Intent(EventBusActivity.this,EventBusActivity2.class));
            }
        });

    }


     public void onEventMainThread(EventClass event) {  
            String msg = "     :" + event.name;  
            Toast.makeText(this, msg, Toast.LENGTH_LONG).show();  
      }  


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

}
public class EventBusActivity2 extends Activity {

    TextView  qiehuan ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_event2);
         qiehuan = (TextView)findViewById(R.id.qiehuan);        
         qiehuan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                  EventBus.getDefault().post(  
                            new EventClass("  2     "));    
            }
        });

    }


}

onevent: onevent를 구독 함수로 사용하면 이 이벤트가 어느 라인에서 발표되었는지 onevent는 이 라인에서 실행됩니다. 즉, 이벤트를 발표하는 것과 수신하는 라인이 같은 라인에서 실행됩니다.이 방법을 사용할 때 onEvent 방법에서는 시간 소모 작업을 수행할 수 없습니다. 시간 소모 작업을 실행하면 이벤트 분배가 지연되기 쉽습니다.oneventMainThread: oneventMainThread를 구독 함수로 사용하면 이벤트가 어느 라인에서 발표되었든지 간에 oneventMainThread는 UI 라인에서 실행되고 수신 이벤트는 UI 라인에서 실행됩니다. 이것은 안드로이드에서 UI 라인에서만 새로운 UI를 따라갈 수 있기 때문에 매우 유용합니다.그래서 onEvnetMainThread 방법에서는 시간 소모 작업을 수행할 수 없습니다.onevent Background: onevent Backgrond를 구독 함수로 사용하면 이벤트가 UI 라인에서 발표되면 onevent Background는 하위 라인에서 실행됩니다. 이벤트가 원래 하위 라인에서 발표된 경우 onevent Background는 하위 라인에서 직접 실행됩니다.onEventAsync: 이 함수를 구독 함수로 사용하면 이벤트가 어느 라인에서 발표되든지 간에 새로운 하위 라인을 만들어서 onEventAsync를 실행합니다.
서로 다른 상황이나 삽입된 서로 다른 실체류에 따라 구분할 수 있다.따로따로 집행했다
만약 매개 변수 실체 클래스가 모두 같다면, 다음 세 가지 방법은 모두 받아들일 이벤트이다

좋은 웹페이지 즐겨찾기