带有 Parcelable 的 intent.putExtra 对于每个额外的内容都会出现 NULL,但没有 Parcelable,一切都很好

intent.putExtra with Parcelable comes out NULL for every extra but without Parcelable everything is fine

提问人:pumawo 提问时间:6/21/2023 最后编辑:pumawo 更新时间:6/21/2023 访问量:27

问:

所以问题是我正在尝试为我的应用程序发出通知,但找不到为什么我总是得到 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:

  1. objectName(不管它是什么) setUpNotification
  2. 在 onReceive object==null 和 year==0 中

但是,如果我只删除这行代码“intent.putExtra(”object“, object);,那么我将收到该 Toast 序列:

  1. objectName(不管它是什么) setUpNotification
  2. 在 onReceive 对象==null 但年份是:2023

为什么?我不知道! P.S. 在此之前,我从未遇到过 Parcelable 的任何问题,在任何活动或其他活动之间,一切都很完美。Parcelable 的问题仅出现在这里。

我读过: 接收传递数据的可包裹对象出现 null 将可包裹对象传递给新活动返回 null 为什么可包裹对象在接收活动中为 null? Android Parcelable -- RetailerOrderActivity.java 返回 null 等等!

但这无济于事。

Android 对象 null 通知 可打包

评论


答: 暂无答案