我正在尝试安排几个警报将帖子发布到 Twitter。我不确定用法,因为我收到 NullPointerException。
我有一个帖子列表,我想将它们发布到 Twitter,所以这就是我所做的。在 WakefulIntentService 类的 scheduleAlarms 方法中,我有一个 for 循环遍历帖子列表并将帖子对象添加到 putExtra 方法:
public static void scheduleAlarms(AlarmListener listener, Context ctxt,
boolean force) {
SharedPreferences prefs = ctxt.getSharedPreferences(NAME, 0);
long lastAlarm = prefs.getLong(LAST_ALARM, 0);
if (lastAlarm == 0
|| force
|| (System.currentTimeMillis() > lastAlarm && System
.currentTimeMillis() - lastAlarm > listener.getMaxAge())) {
AlarmManager mgr = (AlarmManager) ctxt
.getSystemService(Context.ALARM_SERVICE);
for (Iterator<Post> iterator = AlarmActivity.posts.iterator(); iterator
.hasNext();) {
Post post = (Post) iterator.next();
Intent i = new Intent(ctxt, AlarmReceiver.class);
i.putExtra("post", post);
PendingIntent pi = PendingIntent.getBroadcast(ctxt,
(int) post.getId(), i, 0);
listener.scheduleAlarms(mgr, pi, ctxt);
}
}
}
然后在我的 AppService doWakefulWork 方法中,我得到 Parcelable post 对象,但我得到一个空指针异常:
@Override
protected void doWakefulWork(Intent intent) {
Log.i("AppService", "I'm awake! I'm awake! (yawn)");
Post post = intent.getParcelableExtra("post");
System.out.println("- " + post.getPost());
}
这是做我想要实现的正确方法吗?
提前致谢