내 Android Application 클래스 인스턴스가 이벤트에 대한 타사 서비스를 수신하고 있습니다. 그런 다음 이벤트가 나오면 내 활동에 주목해야합니다. 그렇게하는 올바른 방법은 무엇입니까? startActivity () 메서드에 대해 알고 있지만 활동이 아직 실행 중입니다!
LocalBroadcastManager와 함께 로컬 브로드 캐스트 이벤트 사용- 자세한 내용 은이 자습서 를 참조하십시오.
편의를 위해 위의 튜토리얼에서 관련 코드를 복사했습니다.
이벤트에 대해 이미 실행중인 활동을 알리려면 다음을 시도하십시오.
이벤트를 받으면 Application 클래스에서 브로드 캐스트 인 텐트를 보냅니다.
Intent intent = new Intent("my-event");
// add data
intent.putExtra("message", "data");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
이벤트에 대해 수신 된 인 텐트를 처리 할 BroadcastReceiver를 활동에 등록하십시오. 활동에 다음 코드를 추가하십시오.
@Override
public void onResume() {
super.onResume();
// Register mMessageReceiver to receive messages.
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
new IntentFilter("my-event"));
}
// handler for received Intents for the "my-event" event
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Extract data included in the Intent
String message = intent.getStringExtra("message");
Log.d("receiver", "Got message: " + message);
}
};
@Override
protected void onPause() {
// Unregister since the activity is not visible
LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
super.onPause();
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다