Tengo un widget que se supone que llama a una actividad de la aplicación principal cuando el usuario hace clic en el cuerpo del widget. Mi configuración funciona para una única instancia de widget, pero para una segunda instancia del mismo widget PendingIntent se reutiliza y, como resultado, la información vital que estoy enviando como extra se sobrescribe para la primera instancia. Así que pensé que debería pasar ID de widget como datos de Intent
; sin embargo, tan pronto como agregue Intent#setData
, vería en el registro que dos Intenciones separadas son disparadas apropiadamente pero la Actividad no puede recogerlo, así que básicamente la Actividad no surgirá y no pasará nada (sin error o advertencia éter) Así es como la actividad se configura en el Manifiesto:Android: la carga de datos en el intento falla al cargar la actividad
<activity android:name=".SearchResultsView"
android:label="@string/search_results"
<intent-filter>
<action android:name="bostone.android.search.RESULTS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
y aquí está el código que está configurado para manejar el clic
Intent di = new Intent("bostone.android.search.RESULTS");
di.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// if line below is commented out - the Activity will start
di.setData(ContentUris.withAppendedId(Uri.EMPTY, widgetId));
di.putExtra("URL", url);
views.setOnClickPendingIntent(R.id.widgetContent,
PendingIntent.getActivity(this, 0, di, 0));
la aplicación principal y el widget se empaquetan como 2 APK por separado en su propio paquete y Manifiesto
Oh! Pero, por supuesto, ¡tonto! Gracias @mbaird - funciona perfectamente ahora – Bostone