La diferencia entre Android Intent y PendingIntent
La intención es una intención que describe la intención de iniciar una Actividad, Transmisión o Servicio. La información principal que contiene es el componente (Actividad, Transmisión o Servicio) que desea iniciar.
PendingIntent puede verse como un contenedor para Intent. Puede ser llamado por otras aplicaciones además de la aplicación actual. Significa algo así como "pasivo" o "Devolución de llamada", pero no estrictamente "pasivo" o "Devolución de llamada". En resumen, la aplicación actual no puede usarla para activar inmediatamente el Intent que envuelve. En cambio, cuando la aplicación externa ejecuta este PendingIntent, el Intent interno se llama de forma indirecta y real. La información principal que contiene PendingIntent es la intención que envuelve y el contexto de la aplicación actual. Precisamente porque PendingIntent guarda el contexto de la aplicación actual, le da a la aplicación externa la capacidad de ejecutar la intención en PendingIntent como la aplicación actual. Incluso si la aplicación actual ya no existe durante la ejecución, aún puede existir a través de la aplicación actual. Aplicación actual. El contexto en PendingIntent aún ejecuta la intención.
Intent significa intención en inglés, y pendiente significa algo que está por suceder o venir.
La clase PendingIntent se utiliza para manejar lo que está por suceder. Por ejemplo, se utiliza para saltar a la página en Notificación, pero no inmediatamente.
La intención se inicia en el tiempo y la intención desaparece cuando desaparece la actividad donde se encuentra.
PendingIntent puede considerarse como un contenedor para la intención. La instancia de pendiente de intención generalmente se obtiene a través de getActivity, getBroadcast y getService. La actividad actual no puede iniciar la intención que contiene inmediatamente, sino cuando la intención pendiente se ejecuta externamente. , Llame a la intención. Debido a que el contexto de la aplicación actual se guarda en la intención pendiente, le da a la aplicación externa la capacidad de ejecutar la intención en la intención pendiente al igual que la aplicación actual. Incluso si la aplicación actual ya no existe en el momento de la ejecución, puede hacerlo. todavía existe a través de la aplicación existente. El contexto en pendiente de intención aún ejecuta la intención. Además, también puede manejar las operaciones después de ejecutar la intención. A menudo se utiliza con alertmanager y notificationmanager.
La intención se usa generalmente para transferir datos entre Actividad, Servicio y BroadcastReceiver, mientras que PendingIntent se usa generalmente en Notificación y puede entenderse como una intención que retrasa la ejecución. PendingIntent es un contenedor para Intent.
código java:
showNotify privado vacío(){
Notificación aviso=nueva notificación();
notice.icon=R .drawable.icon;
notice.tickerText=”Tienes un mensaje nuevo”;
notice.defaults=Notificación.DEFAULT_SOUND;
notice.when = 10L;
// Después de un retraso de 100 milisegundos, vibre durante 250 milisegundos, haga una pausa de 100 milisegundos y luego vibre durante 500 milisegundos
//notice.vibrate = new long[] { 100, 250, 100, 500 };¿Error?
//notice.setLatestEventInfo(this, "Aviso", "Reunión", PendingIntent.getActivity(this, 0, null, 0));< /p >
notice.setLatestEventInfo(this, "Notification", "Meeting", PendingIntent.getActivity(this, 0, new Intent(this,Activity2.class), 0));//La página saltará pronto, aún no Saltar
NotificationManager manager=(NotificationManager)getSystemService(this.NOTIFICATION_SERVICE);
manager.notify(0,notice);
}
1. Ejemplo de android enviando SMS en red GSM
código java:
String msg = "Hola, belleza";
String number =. " 135****6784″;
SmsManager sms = SmsManager.getDefault();
PendingIntent pi = PendingIntent.getBroadcast(SmsActivity.this,0,new Intent(…) , 0);
sms.sendTextMessage(number, null, msg, pi, null);
Toast.makeText(SmsActivity.this, "Enviar correctamente", Toast.LENGHT_LONG) . show();
PendingIntent es una descripción de un Intent. Podemos dar esta descripción a otros programas, y otros programas harán lo que usted programe en otros momentos basándose en esta descripción (dando un PendingIntent a otra aplicación, le estás otorgando el derecho de realizar la operación que has especificado como si la otra aplicación fuera tú mismo, lo que equivale a que PendingIntent represente Intent). El otro programa en este ejemplo es un programa que envía mensajes de texto. Una vez que el mensaje de texto se envía correctamente, se debe transmitir la intención.
Explicación de parámetros en la función SmsManager.sendTextMessage(String destinoAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent):
1) PendingIntent sentIntent: Cuando se envía el SMS, si sendIntent tiene éxito, transmitirá la intención descrita en su interior; de lo contrario, se generará un código de error y se realizará una devolución de llamada a través de android.app.PendingIntent.OnFinished. Es mejor que este parámetro no esté vacío; de lo contrario, habrá posibles problemas de recursos. desperdicio;
2) PendingIntent deliveryIntent: Es la transmisión PendingIntent después de que el mensaje ha sido entregado al destinatario.
Al observar la clase PendingIntent, puede ver muchas funciones de envío, que son las operaciones relacionadas asignadas a PendingIntent.