BroadcastReceiver.OnReceive(Context, Intent) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Esse método é chamado quando o BroadcastReceiver está recebendo uma transmissão de intenção.
[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
Parâmetros
- context
- Context
O contexto no qual o receptor está sendo executado.
- intent
- Intent
A intenção sendo recebida.
- Atributos
Comentários
Esse método é chamado quando o BroadcastReceiver está recebendo uma transmissão de intenção. Durante esse tempo, você pode usar os outros métodos no BroadcastReceiver para exibir/modificar os valores de resultado atuais. Esse método é sempre chamado dentro do thread principal de seu processo, a menos que você tenha solicitado explicitamente que ele seja agendado em um thread diferente usando android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)
o . Quando ele é executado no thread principal, você nunca deve executar operações de longa duração nele (há um tempo limite de 10 segundos que o sistema permite antes de considerar o receptor a ser bloqueado e um candidato a ser morto). Não é possível iniciar uma caixa de diálogo pop-up na implementação de onReceive().
<b>Se este BroadcastReceiver foi lançado através de um < receptor> , então o objeto não está mais vivo depois de retornar dessa função.</b> Isso significa que você não deve executar nenhuma operação que retorne um resultado para você de forma assíncrona. Se você precisar executar algum trabalho de acompanhamento em segundo plano, agende um android.app.job.JobService
com android.app.job.JobScheduler
o .
Se você deseja interagir com um serviço que já está em execução e anteriormente vinculado usando android.content.Context#bindService(Intent, ServiceConnection, int) bindService()
o , você pode usar #peekService
o .
Os filtros de intenção usados em android.content.Context#registerReceiver
e em manifestos de aplicação não são <garantidos como>>< exclusivos. Eles são dicas para o sistema operacional sobre como encontrar destinatários adequados. É possível que os remetentes forcem a entrega para destinatários específicos, ignorando a resolução do filtro. Por essa razão, #onReceive(Context, Intent) onReceive()
as implementações devem responder apenas a ações conhecidas, ignorando quaisquer intenções inesperadas que possam receber.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.