다음을 통해 공유


BroadcastReceiver.OnReceive(Context, Intent) 메서드

정의

이 메서드는 BroadcastReceiver가 의도 브로드캐스트를 받을 때 호출됩니다.

[Android.Runtime.Register("onReceive", "(Landroid/content/Context;Landroid/content/Intent;)V", "GetOnReceive_Landroid_content_Context_Landroid_content_Intent_Handler")]
public abstract void OnReceive (Android.Content.Context? context, Android.Content.Intent? intent);
[<Android.Runtime.Register("onReceive", "(Landroid/content/Context;Landroid/content/Intent;)V", "GetOnReceive_Landroid_content_Context_Landroid_content_Intent_Handler")>]
abstract member OnReceive : Android.Content.Context * Android.Content.Intent -> unit

매개 변수

context
Context

수신기가 실행 중인 컨텍스트입니다.

intent
Intent

수신되는 의도입니다.

특성

설명

이 메서드는 BroadcastReceiver가 의도 브로드캐스트를 받을 때 호출됩니다. 이 시간 동안 BroadcastReceiver의 다른 메서드를 사용하여 현재 결과 값을 보거나 수정할 수 있습니다. 를 사용하여 android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)다른 스레드에서 예약하도록 명시적으로 요청하지 않는 한 이 메서드는 항상 프로세스의 기본 스레드 내에서 호출됩니다. 기본 스레드에서 실행되는 경우 장기 실행 작업을 수행해서는 안 됩니다(수신기가 차단되고 후보가 종료되는 것을 고려하기 전에 시스템에서 허용하는 시간 제한은 10초입니다). onReceive()의 구현에서는 팝업 대화 상자를 시작할 수 없습니다.

<b>이 BroadcastReceiver가 <를 통해 시작된 경우 수신기> 태그를 지정하면 개체가 이 함수에서 반환된 후 더 이상 활성 상태가 아닙니다.</b> 즉, 결과를 비동기적으로 반환하는 작업을 수행해서는 안 됩니다. 후속 백그라운드 작업을 수행해야 하는 경우 를 사용하여 을 android.app.job.JobServiceandroid.app.job.JobScheduler예약합니다.

를 사용하여 android.content.Context#bindService(Intent, ServiceConnection, int) bindService()이미 실행 중이고 이전에 바인딩된 서비스와 상호 작용하려는 경우 를 사용할 #peekService수 있습니다.

애플리케이션 매니페스트에서 및 에서 android.content.Context#registerReceiver 사용되는 의도 필터는 <em>not</em> 이 배타적이라고 보장합니다. 적합한 수신자를 찾는 방법에 대한 힌트는 운영 체제에 대한 힌트입니다. 보낸 사람이 필터 확인을 우회하여 특정 받는 사람에게 강제로 배달할 수 있습니다. 이러한 이유로 #onReceive(Context, Intent) onReceive() 구현은 알려진 작업에만 응답하여 수신할 수 있는 예기치 않은 의도를 무시해야 합니다.

에 대한 Java 설명서입니다 android.content.BroadcastReceiver.onReceive(android.content.Context, android.content.Intent).

이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.

적용 대상