提问人:pumawo 提问时间:6/21/2023 最后编辑:pumawo 更新时间:6/21/2023 访问量:27
带有 Parcelable 的 intent.putExtra 对于每个额外的内容都会出现 NULL,但没有 Parcelable,一切都很好
intent.putExtra with Parcelable comes out NULL for every extra but without Parcelable everything is fine
问:
所以问题是我正在尝试为我的应用程序发出通知,但找不到为什么我总是得到 null! 这是我所做的:
Intent intent = new Intent(context, NotificationReceiver.class);
intent.putExtra("object", object);
intent.putExtra("year", year);
Toast.makeText(context, object.getName() + " setUpNotification", Toast.LENGTH_SHORT).show();
我收到一个 Toast “objectName(不管它是什么) setUpNotification”
但是,当我想接收该意图时,会发生以下情况:
@Override
public void onReceive(Context context, Intent intent) {
if(intent!=null){
myObject object = intent.getParcelableExtra("object");
int year = intent.getIntExtra("year", 0);
if(object !=null){
Toast.makeText(context, "in onReceive object != null", Toast.LENGTH_LONG).show();
}else if(year!=0){
Toast.makeText(context, "in onReceive object == null but year is: " + year, Toast.LENGTH_LONG).show();
}else{
Toast.makeText(context, "in onReceive object task==null and year==0", Toast.LENGTH_LONG).show();
}
}
}
我收到了一连串的 Toast:
- objectName(不管它是什么) setUpNotification
- 在 onReceive object==null 和 year==0 中
但是,如果我只删除这行代码“intent.putExtra(”object“, object);,那么我将收到该 Toast 序列:
- objectName(不管它是什么) setUpNotification
- 在 onReceive 对象==null 但年份是:2023
为什么?我不知道! P.S. 在此之前,我从未遇到过 Parcelable 的任何问题,在任何活动或其他活动之间,一切都很完美。Parcelable 的问题仅出现在这里。
我读过: 接收传递数据的可包裹对象出现 null 将可包裹对象传递给新活动返回 null 为什么可包裹对象在接收活动中为 null? Android Parcelable -- RetailerOrderActivity.java 返回 null 等等!
但这无济于事。
答: 暂无答案
评论