2012-03-06 30 views
16

Quiero saber cuál es el propósito de la clase IntentSender para nuestra aplicación? ¿Cómo lo usamos en nuestra aplicación?¿Cuál es el propósito de IntentSender?

¿Hay algún buen ejemplo, además de The Android Intent Based APIs: Part Seven – IntentSenders And PendingIntents?

+0

seguramente eso depende de lo que su aplicación está tratando de hacer? –

+0

@Stev_k: gracias, cualquier ejemplo de código y buen tutorial sobre 'IntentSender' ... –

Respuesta

7

IntentSender es una especie de un nivel de abstracción o una clase de pegamento que le permite

  1. Recibe emisión cuando el usuario selecciona la aplicación en el Selector.

    ejemplo cuando se utiliza IntentSender:

    Intent intent = new Intent(Intent.ACTION_SEND) 
        .putExtra(Intent.EXTRA_TEXT, "This is my text to send.") 
        .setType("text/plain"); 
    Intent receiver = new Intent(this, BroadcastTest.class) 
        .putExtra("test", "test"); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT); 
    Intent chooser = Intent.createChooser(intent, "test", pendingIntent.getIntentSender()); 
    startActivity(chooser); 
    
  2. inicio Activity con IntentSender en lugar de Intent (más en Android docs)

    startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options)

    Como startActivity(Intent, Bundle), pero teniendo un IntentSender para iniciar .

+1

Gracias por su respuesta. Es bueno notar que el desarrollador puede usar '(ComponentName) intent.getExtras(). GetParcelable (EXTRA_CHOSEN_COMPONENT)' en su método receptor 'onReceive()' para obtener la información de la aplicación elegida (nombre del paquete, etc ...). –

2

La documentación para desarrolladores de Android oficial IntentSender establece claramente:

instancias de esta clase no se pueden hacer directamente, sino que deben ser creados a partir de una PendingIntent existente con PendingIntent.getIntentSender().

Por lo tanto, no debería (debería) ver que esta clase se use directamente en un ejemplo de código o tutorial.

En cuanto a un PendingIntent, es básicamente un token que le das a otra aplicación que permite que esa aplicación use los permisos de tu aplicación para ejecutar una parte específica del código de tu aplicación.

Here's an example de un PendingIntent utilizado en una clase.

Cuestiones relacionadas