我一直在尝试在正确的时间在Android上启动通知。我希望他们将来从App发布会开始2分钟。如果我能在这里工作,我可以很容易地让它在我真正需要的地方工作。日志显示所需的代码行正在运行,但通知永远不会启动。我有超过8小时的时间尝试调试这个并且没有在哪里。任何帮助都会很棒。
这是我创建的提醒代码:
final PendingIntent pi = PendingIntent.getBroadcast(this.mContext,
0,
i,
PendingIntent.FLAG_ONE_SHOT);
TimeZone timeZone= TimeZone.getDefault();
Calendar time= Calendar.getInstance(timeZone);
time.add(Calendar.MINUTE, 2);
this.mAlarmManager.set(AlarmManager.RTC_WAKEUP,
time.getTimeInMillis(),
pi);
Log.d ("setReminder",time.getTime().toLocaleString());
现在,下面是我的OnAlarmRecieve
代码,该代码根据日志在2分钟后永远不会运行。该课程延伸BroadcastReceiver
@Override
public void onReceive(final Context context,
final Intent intent) {
Log.d(TAG, "Recieved wake up cal from Alarm Manger");
final String tableName = intent.getStringExtra(IntentExtraStringStorage.TABLE_NAME);
final long rowID = intent.getLongExtra(IntentExtraStringStorage.ROW_ID,
-1);
final String titleString = intent.getStringExtra(IntentExtraStringStorage.NOTIFICATION_TITLE);
final String notificationString=intent.getStringExtra(IntentExtraStringStorage.NOTIFICATION_NOTE);
WakeUpReminderIntentService.acuireStaticLock(context);
/*if (tableName== Task.TABLE_NAME) {
launchTaskView(context, rowID);
}
else {
Log.e (TAG, "Did not Launch");
Toast.makeText(context, "Did not work right", Toast.LENGTH_SHORT).show();
}*/
Intent i = new Intent (context, ReminderService.class);
i.putExtra("taskID", rowID);
i.putExtras(intent.getExtras());
Log.d(TAG, "Launched task");
//TODO Added code to build the screen correctly
//FIXIT this need to be finished.
context.startService(i);
}]=
答案 0 :(得分:1)
我发现了我的问题。结果我没有把主要节日中的OnAlarmReciever作为接收者。还需要将另一件事放入服务中。
对于开发来说,重新开始是为了这么多小事。