Java 使用报警管理器的Android通知不工作

Java 使用报警管理器的Android通知不工作,java,android,notifications,Java,Android,Notifications,我一直在尝试在正确的时间在Android上发布通知。我希望他们在未来2分钟内从应用程序发布开始。如果我能让它在这里工作,我可以很容易地让它在我真正需要的地方工作。日志显示所需的代码行正在运行,但通知从未启动。我花了8个多小时的时间试图调试这个程序,但没有结果。任何帮助都会很好 以下是我创建的提醒代码: final PendingIntent pi = PendingIntent.getBroadcast(this.mContext, 0,

我一直在尝试在正确的时间在Android上发布通知。我希望他们在未来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());
下面是我的
onalarrecieve
代码,根据日志,该代码在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);
}]=

我发现了我的问题。事实证明,我并没有把国家队的接受者作为接受者放在主要比赛中。还需要在服务中添加其他内容


退后一步,成为新开发人员,因为这是许多小事。

我发现了我的问题。事实证明,我并没有把国家队的接受者作为接受者放在主要比赛中。还需要在服务中添加其他内容


退一步说,对于开发来说,这是很多小事。

不知道这是否是您的问题,但我遇到了一个类似的问题,结果是,在调用onReceive()时,一旦onReceive()返回,设备就会立即进入睡眠状态,因此任何应该在onReceive()之后运行的代码都会返回睡眠状态我不会跑的。我的解决方案是从onReceive()中调用PowerManager.userActivity()以强制设备完全唤醒。请参阅:和/或我遇到的问题是onReceive()似乎根本就没有运行过。我是否需要确保向清单中添加了某些内容以确保它发生?是否已将接收方添加到manifest.xml?这就是问题所在。它被遗漏在清单文件之外。把它放进去,完全解决了问题不管这是不是你的问题,我都不知道,但我有一个类似的问题,结果是,在调用onReceive()时,一旦onReceive()返回,设备就会立即返回睡眠状态,因此,在onReceive()返回后本应运行的任何代码都不会运行。我的解决方案是从onReceive()中调用PowerManager.userActivity()以强制设备完全唤醒。请参阅:和/或我遇到的问题是onReceive()似乎根本就没有运行过。我是否需要确保向清单中添加了某些内容以确保它发生?是否已将接收方添加到manifest.xml?这就是问题所在。它被遗漏在清单文件之外。把它放进去,彻底解决了问题