В моем виджете у меня есть настройки, необходимые для намерений в коллекциях (setPendingIntentTemplate) в моем AppWidgetProvider
подкласса по методу onUpdate
Android AppWidget RemoteViewsFactory намерения и putSerializable/putParcelable
и на моем RemoteViewsFactory
getViewAt
метод у меня есть:
Bundle extras = new Bundle();
extras.putInt("pos", position);
extras.putInt("date", new DateTime().millisOfDay().get());
//comment this to work
extras.putSerializable("d", new DateTime());
Intent fillInIntent = new Intent();
fillInIntent.putExtras(extras);
// Make it possible to distinguish the individual on-click
// action of a given item
row.setOnClickFillInIntent(R.id.list_view_row, fillInIntent);
У меня возникла проблема с запуском моей деятельности, но у меня нет дополнительных функций из метода getViewAt
, однако как только я прокомментирую заявление extras.putSerializable("d", new DateTime());
a ctivity получает все остальные дополнения, так как это исключено, так же, как и для Parcelable
, кроме того, документировано где угодно, что AppWidgets
setOnClickFillInIntent
не поддерживается Parcelable
и Serializable
дополнительные услуги?
Edit: Im используя следующий пристальный шаблон:
Intent startActivityIntent = new Intent(context, MainActivity.class);
//startActivityIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivityIntent
.setAction(Intent.ACTION_VIEW)
.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId)
.setData(Uri.parse(startActivityIntent.toUri(Intent.URI_INTENT_SCHEME)));
PendingIntent startActivityPendingIntent = PendingIntent
.getActivity(context, 0, startActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setPendingIntentTemplate(R.id.list, startActivityPendingIntent);
Благодаря им уже с помощью 'FLAG_UPDATE_CURRENT' – forcewill