Notice
Recent Posts
Recent Comments
Link
투케이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();
}
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments