BroadcastReceiver ?
Android 시스템 및 기타 Android 앱에서 브로드캐스트 메시지를 보내거나 받을 수 있습니다 . 이러한 브로드캐스트는 관심 있는 이벤트가 발생할 때 전송됩니다. 예를 들어 Android 시스템은 시스템이 부팅되거나 기기가 충전을 시작하는 등 다양한 시스템 이벤트가 발생할 때 브로드캐스트를 보냅니다. 예를 들어 앱은 사용자 지정 브로드캐스트를 전송하여 다른 앱에 관심이 있을 수 있는 항목(예: 일부 새 데이터가 다운로드됨)을 알릴 수도 있습니다.
BroadcastReceiver 등록 방법
// BroadcastReceiver class
public class MyBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "MyBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
StringBuilder sb = new StringBuilder();
sb.append("Action: " + intent.getAction() + "\\n");
sb.append("URI: " + intent.toUri(Intent.URI_INTENT_SCHEME).toString() + "\\n");
String log = sb.toString();
Log.d(TAG, log);
Toast.makeText(context, log, Toast.LENGTH_LONG).show();
}
}
// activity
BroadcastReceiver br = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter(APP_SPECIFIC_BROADCAST);
registerReceiver(context, br, filter);
unregisterReceiver(br);
LocalBroadcastManager
[LocalBroadcastManager.sendBroadcast](<https://developer.android.com/reference/androidx/localbroadcastmanager/content/LocalBroadcastManager#sendBroadcast(android.content.Intent)>)메서드는 발신자와 동일한 앱에 있는 수신자에게 브로드캐스트를 보냅니다. 앱 간에 브로드캐스트를 보낼 필요가 없으면 로컬 브로드캐스트를 사용하세요. 구현이 훨씬 더 효율적이며(프로세스 간 통신이 필요하지 않음) 브로드캐스트를 수신하거나 보낼 수 있는 다른 앱과 관련된 보안 문제에 대해 걱정할 필요가 없습니다.
브로드캐스트 수신기를 내보내고 장치의 다른 앱에서 볼 수 있는지 여부를 선택합니다. 이 수신기가 시스템이나 다른 앱(귀하가 소유한 다른 앱 포함)에서 보낸 브로드캐스트를 수신하는 경우 android:exported="true"
<receiver android:name=".MyBroadcastReceiver" android:exported="true">
Reference
https://developer.android.com/guide/components/broadcasts?hl=ko
'Android' 카테고리의 다른 글
Android WebView 샘플 앱 개발 - 1 (0) | 2022.10.22 |
---|---|
Android에서 Firebase Cloud Messaging 테스트 앱 개발 - 1 (0) | 2022.10.19 |
Android 앱에서 블루투스 마우스 커서 숨기기 (0) | 2022.09.29 |
Duplicate class a.a.a.a found in modules 오류 (0) | 2022.09.08 |
[Android Studio] Android Studio IDE에서 이미지 리소스 쉽게 얻기 (0) | 2022.08.28 |