【发布时间】:2016-10-21 19:46:01
【问题描述】:
当在AppWidgetProvider 的onReceive() 方法中从RemoteViewsService 获取parcelable 对象时,我总是得到null。
我试过了,通过了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);
【问题讨论】:
-
如果我不得不猜测,你正在跑到另一个地方where custom
Parcelableimplementations do not work。 -
@CommonsWare 你解决了我的问题。随意发布它作为答案。
标签: android android-appwidget appwidgetprovider