Desidero inviare una trasmissione ordinata in un PendingIntent. Ma ho trovato solo PendingIntent.getBroadcast(this, 0, intent, 0)
, che credo possa inviare solo una trasmissione regolare. Quindi cosa posso fare?Come inviare una trasmissione ordinata in un PendingIntent?
risposta
ho ricevuto questo da http://justanapplication.wordpress.com/tag/pendingintent-getbroadcast:
Se l'argomento onFinished non è nullo, allora viene eseguita una trasmissione ordinata.
Quindi si potrebbe provare a chiamare PendingIntent.send con il set di argomenti onFinished.
Tuttavia, mi sono imbattuto nel problema che ho dovuto inviare un OrderedBroadcast da una notifica. Ho funzionato creando un BroadcastReceiver che inoltra l'Intent come OrderedBroadcast. Non so davvero se questa sia una buona soluzione.
Così ho iniziato con la creazione di un intento che contiene il nome dell'azione di trasmettere come un extra:
// the name of the action of our OrderedBroadcast forwarder
Intent intent = new Intent("com.youapp.FORWARD_AS_ORDERED_BROADCAST");
// the name of the action to send the OrderedBroadcast to
intent.putExtra(OrderedBroadcastForwarder.ACTION_NAME, "com.youapp.SOME_ACTION");
intent.putExtra("some_extra", "123");
// etc.
Nel mio caso ho passato la PendingIntent a una notifica:
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
Notification notification = new NotificationCompat.Builder(context)
.setContentTitle("Notification title")
.setContentText("Notification content")
.setSmallIcon(R.drawable.notification_icon)
.setContentIntent(pendingIntent)
.build();
NotificationManager notificationManager = (NotificationManager)context
.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify((int)System.nanoTime(), notification);
Poi ho definito i seguenti ricevitori nel mio manifesto:
<receiver
android:name="com.youapp.OrderedBroadcastForwarder"
android:exported="false">
<intent-filter>
<action android:name="com.youapp.FORWARD_AS_ORDERED_BROADCAST" />
</intent-filter>
</receiver>
<receiver
android:name="com.youapp.PushNotificationClickReceiver"
android:exported="false">
<intent-filter android:priority="1">
<action android:name="com.youapp.SOME_ACTION" />
</intent-filter>
</receiver>
Poi l'OrderedBro adcastForwarder ha il seguente aspetto:
public class OrderedBroadcastForwarder extends BroadcastReceiver
{
public static final String ACTION_NAME = "action";
@Override
public void onReceive(Context context, Intent intent)
{
Intent forwardIntent = new Intent(intent.getStringExtra(ACTION_NAME));
forwardIntent.putExtras(intent);
forwardIntent.removeExtra(ACTION_NAME);
context.sendOrderedBroadcast(forwardIntent, null);
}
}
- 1. Come interrompere la notifica di trasmissione? (per una trasmissione non ordinata)
- 2. Come inviare PendingIntent al mio servizio in Intento
- 3. Annullamento di un PendingIntent
- 4. BroadcastReceiver che tenta di restituire il risultato durante una trasmissione non ordinata - PACKAGE_ADDED in Android
- 5. Come creare una mappa ordinata in scala?
- 6. Come ottenere l'intenzione da PendingIntent
- 7. Notifica Android Azione non attivata (PendingIntent)
- 8. C++ memorizzando un valore in una coppia non ordinata
- 9. PendingIntent get requestCode
- 10. Ricerca in una matrice non ordinata
- 11. Come posso ottenere un primo elemento da una lista ordinata?
- 12. Notifica con "null" PendingIntent
- 13. Inizio PendingIntent per risultato
- 14. Conversione di un oggetto letterale in una matrice ordinata
- 15. Usa due pendingIntent su una vista in Appwidget
- 16. Convertire una stringa in un tempo di trasmissione
- 17. Android Notification PendingIntent Extras null
- 18. Come posso essere avvisato se una colonna DataGrid è ordinata (e non ordinata)
- 19. PendingIntent per avviare e interrompere un servizio
- 20. Quando useresti PendingIntent?
- 21. Come inviare un valore enum in una notifica in Swift?
- 22. Come inserire un elemento in una lista concatenata ordinata con una complessità a tempo costante?
- 23. Che cos'è una trasmissione appiccicosa?
- 24. Perché l'elaborazione di una matrice ordinata è più lenta di una matrice non ordinata?
- 25. Girando una lista non ordinata in una tabella di contenuti
- 26. AlarmManager innesca PendingIntent troppo presto
- 27. Come inviare una richiesta POST in Golang?
- 28. Come inviare una richiesta HTTPS attraverso un proxy in Java?
- 29. Come inviare un risultato di una query in formato CSV?
- 30. Come posso inviare un file in una richiesta POST?