투케이2K

51. (AndroidStudio/android/java) service 서비스에서 Activity 액티비티로 브로드 캐스트 메시지 전달 및 동적 ui 변경 실시 본문

Android

51. (AndroidStudio/android/java) service 서비스에서 Activity 액티비티로 브로드 캐스트 메시지 전달 및 동적 ui 변경 실시

투케이2K 2021. 2. 18. 15:54

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : AndroidStudio

개발 언어 : java

/* =========================== */

/* =========================== */

[소스 코드]

 

// TODO ================== [Service 소스코드] ==================
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[Service > Activity : 브로드 캐스트 메시지 전달 실시]");
Log.d("//===========//","================================================");
Log.d("---","---");
Intent intent = new Intent("push");
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.putExtra("message", "run");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);





// TODO ================== [Activity 소스코드] ==================
//TODO === 브로드 캐스트 등록 실시 ===
@Override
protected void onResume() {
	super.onResume();
	Log.d("---","---");
	Log.d("//===========//","================================================");
	Log.d("","\n"+"[Activity  > onResume() 메소드 : 액티비티 준비 실시]");
	Log.d("","\n"+"[로직 : 브로드 캐스트 등록 실시]");
	Log.d("//===========//","================================================");
	Log.d("---","---");
	try {
		//TODO Service에서 받아온 푸시 브로드 캐스트 받기 위함
		LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter("push"));
	}
	catch (Exception e){
		e.printStackTrace();
	}

	try {
		//TODO 외부 브라우저 링크 이동 실시 후 다시 메인 복귀 시 애니메이션 효과 제거
		overridePendingTransition(0,0);
	}
	catch (Exception e){
		e.printStackTrace();
	}
}


//TODO === 브로드 캐스트 객체 생성 ===
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
	@Override
	public void onReceive(Context context, Intent intent) {
		String message = intent.getStringExtra("message");
		getCallMethod(message); //TODO 브로드캐스트 메시지 수신 시 실행시킬 메소드 호출		
	}
};


//TODO === 브로드 캐스트 해제 실시 ===
protected void onPause() {
	try {
		LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
	}
	catch (Exception e){
		e.printStackTrace();
	}
	Log.d("---","---");
	Log.d("//===========//","================================================");
	Log.d("","\n"+"[Activity > onPause() 메소드 : 액티비티 정지 실시]");
	Log.d("","\n"+"[로직 : "+"브로드 캐스트 해제 실시"+"]");
	Log.d("//===========//","================================================");
	Log.d("---","---");
	super.onPause();
}

/* =========================== */

반응형
Comments