EventBus 상세 사용 강좌 [Activity, 서비스, Receiver에서 Post], 이벤트busreceiver
4396 단어 android
compile
'de.greenrobot:eventbus:2.4.0'
대응하는jar 패키지를 다운로드하거나
2, 등록 및 로그오프 EventBus
@Override
protected
void
onStart
() {
super
.onStart();
//등록
EventBus
EventBus.getDefault().register(
this
);
Logger.e(
"EventBus 등록"
);
}
@Override
protected
void
onStop
() {
super
.onStop();
//EventBus 로그오프
EventBus.getDefault().unregister(
this
);
Logger.e(
"EventBus 로그아웃"
);
}
3. 메시지 유형 사용자 정의
public class MessageEvent {
public String message;
public MessageEvent(String message){
this.message = message;
}
}
4、post는Activity의 하위 스레드에서 메시지 업데이트 UI를 발송합니다
Thread thread = new Thread(new Runnable){
@Override
public run(){
EventBus.getDefault.post("Event Bus가 하위 스레드에서 보낸 메시지일 뿐")
}
}
5. Service에서 Activity에 메시지를 보내 UI 업데이트
public class MyService extends Service {
public static final String ACTION_START="ACTION_START";
@Override
public IBinder onBind(Intent intent) {
return new Binder();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(ACTION_START.equals(intent.getAction())){
new MyServerThread().start();
}
return super.onStartCommand(intent, flags, startId);
}
class MyServerThread extends Thread{
@Override
public void run() {
EventBus.getDefault().post(new MessageEvent(" MyService MyServerThread Post "));
}
}
}
6. Receiver Activity UI
public class MyBroadcastReceiver extends BroadcastReceiver{
public static final String ACTION_SEND="ACTION_SEND";
@Override
public void onReceive(Context context, Intent intent) {
if (ACTION_SEND.equals(intent.getAction())){
EventBus.getDefault().post(new MessageEvent(" [ ] Activity "));
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.