Я всегда получаю нуль, при получении parcelable объекта из RemoteViewsService
в onReceive()
методе AppWidgetProvider
.parcelable объект поставщик appwidget всегда возвращает нуль
Я пробовал, проезжая string
и int
, и он отлично работал, но не был включен parcelable
.
StackWidgetProvider.java расширяет AppWidgetProvider
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(INTENT_ACTION)){
Artwork artwork = (Artwork) intent.getParcelableExtra(EXTRA_ART);
Log.e("Intent","->"+artwork.getTitle());
Intent showArtDetail = new Intent(context, ArtsDetailsActivity.class);
showArtDetail.putExtra(ArtsDetailsActivity.TAG_ARTWORK, artwork);
showArtDetail.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(showArtDetail);
}
super.onReceive(context, intent);
}
StackWidgetService.java расширяет RemoteServiceView
Bundle extras = new Bundle();
extras.putParcelable(StackWidgetProvider.EXTRA_ART, artwork);
Intent fillInIntent = new Intent();
fillInIntent.putExtras(extras);
remoteViews.setOnClickFillInIntent(R.id.widget_item, fillInIntent);
Если бы мне пришлось угадать, вы бежите в другое место [где пользовательские «Parcelable» реализации не работают] (https://commonsware.com/blog/2016/07/22 /be-careful-where-you-use-custom-parcelables.html). – CommonsWare
@CommonsВы решаете мою проблему. Не стесняйтесь публиковать его в качестве ответа. –