Android
[Android] 정적 리시버, Manifest-declared receivers
2021. 2. 24. 10:09반응형
<receiver android:name=".MyBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.INPUT_METHOD_CHANGED" />
</intent-filter>
</receiver>
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();
}
}
정적리시버는
- 브로드캐스트가 보내질 떄, 시스템은 이 앱을 실행시킴 (앱이 아직 실행되지 않았으면)
- 시스템 패키지 매니저가 앱을 설치할 때 이 receiver를 등록함.
- 그 리시버는 앱 안에서 분리된 엔트리 포인트가 됨.
- 그 말은 시스템이 앱을 시작할 수 있고 앱이 현재 진행중이지 않을 때 broadcast를 전달할 수 있음.
- 시스템은 그것을 받은 각각의 broadcast를 처리하기 위해 새로운 BroadcastReciver 컴포넌트 오브젝트를 생성함,
- 이 오브젝트는 onReceive에 오직 call 기간 동안 유효함.
- 만약 이 method로 부터 code가 returns하면 시스템은 그 컴포넌트를 더이상 활성화 되어있지 않다고 생각함.
반응형
'Android' 카테고리의 다른 글
[Android Studio] 자동 Gradle 방지, 프로젝트로 열기 (0) | 2021.05.08 |
---|---|
[Android] Log Level (0) | 2021.03.11 |
Android.bp 파일이란? (0) | 2021.02.18 |
[Android Studio] Bundle값 출력 (0) | 2021.01.22 |
Junit4 Annotation 목록들 (0) | 2020.12.10 |