我有对象PendingIntent,该对象由方法toString()强制转换为String。我需要解析它以键入PendingIntent。我该怎么办?
这是对象:
public class NotificationInit implements Serializable, Parcelable {
private Bitmap app_image;
private String title, message, time, date, noticeKey, packageName;
private PendingIntent messageIntent;
private Calendar notifyDate;
public NotificationInit(String noticeKey, String packageName, Bitmap app_image, String title, String message, String time, String date, PendingIntent messageIntent) {
this.noticeKey = noticeKey;
this.packageName = packageName;
this.app_image = app_image;
this.title = title;
this.message = message;
this.time = time;
this.date = date;
this.messageIntent = messageIntent;
notifyDate = Calendar.getInstance();
notifyDate.setTimeInMillis(Long.parseLong(time));
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(title);
dest.writeString(message);
dest.writeString(time);
dest.writeString(date);
dest.writeString(noticeKey);
}
}
此代码还具有getter和setters
在插入SharedPreferences之前,我需要先创建它,因为这是不使用数据库保存此数据的最简单方法!
如何序列化对象?
答案 0 :(得分:0)
您不能以这种方式这样做。您无法通过调用PendingIntent
来序列化toString()
。您无法序列化PendingIntent
并保存到SharedPreferences
,因为PendingIntent
不是持久性的。
您需要做的就是存储足够的数据,以便可以在需要时重新创建。PendingIntent
。这意味着您需要了解Intent
中的信息(动作,数据,组件等),并且需要传递给requestCode
的{{1}}。将这些东西存储在您的PendingIntent.getActivity()
中。