2012-04-10 85 views
1

我一直在试图让通知在正确的时间在Android上启动。我希望他们在未来2分钟内从App推出。如果我能在这里工作,我可以很容易地将它运用到我真正需要的地方。日志显示所需的代码行正在运行,但通知从未启动。我花了超过8个小时来尝试调试,并没有得到任何地方。任何帮助都会很棒。使用报警管理器不工作的Android通知

这里提醒代码我已经创建了:

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

说不上来,如果它是你的问题或没有,但我有一个类似的问题,事实证明,虽然的onReceive()被调用时,设备会去直接回到尽快的onReceive()返回睡觉,因此任何代码应该在onReceive()返回后运行。我的解决方案是从onReceive()中调用PowerManager.userActivity()来强制设备完全清醒。 – 2012-04-10 22:36:43

+0

作为参考,见:http://stackoverflow.com/questions/9650974/how-to-programatically-dismiss-the-screensaver-lock-screen-on-android-nook-simp和/或https:// github上。 com/jfriesne/Electric-Sign/blob/master/src/com/sugoi/electricsign/ElectricSignActivity.java – 2012-04-10 22:37:55

+0

问题我现在看起来像onReceive()从来没有运行过。我是否需要确保清单中添加了一些内容以确保它发生? – Timeless 2012-04-10 22:58:57

回答

1

,我发现我的问题。结果我没有把OnAlarmReciever作为接收者放在mainfest中。还需要将另一件事情放入服务中。

退是新来的这个发展是这么多的小东西。