【发布时间】:2018-01-19 22:03:39
【问题描述】:
您好,我正在尝试使用以下代码在设置 AlarmManager 时附加一个对象,
try {
int when = (int)testDate.getTime();
Intent intent1 = new Intent(mEventService, AlarmReceiver.class);
Bundle bundle = new Bundle();
bundle.putSerializable(Contants.NOTIFICATION_DATA, (Serializable) event);
intent1.putExtras(bundle);
PendingIntent sender = PendingIntent.getBroadcast(mEventService, (int)when, intent1, PendingIntent.FLAG_UPDATE_CURRENT); //192837
// Get the AlarmManager service
AlarmManager am = (AlarmManager) mEventService.getSystemService(mEventService.ALARM_SERVICE);
am.setExact(AlarmManager.RTC_WAKEUP, when, sender);
} catch (ParseException e) {
e.printStackTrace();
}
在接收器类中
public class AlarmReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Event event = (Event) intent.getSerializableExtra(Contants.NOTIFICATION_DATA);
}
}
在“onReceive”中,getSerializableExtra 数据为空。但是,当我传递一个 String value 而不是一个对象时,它工作正常。 请帮我找出问题。
【问题讨论】:
-
Event是您的自定义类吗?如果是这样,那么它必须由Serializable实现。必须检查event不应null -
@Piyush:我正在序列化'(Serializable) 事件'并且该事件不是空对象。
标签: android alarmmanager serializable