Android警报未被触发

时间:2011-01-20 13:06:46

标签: android alarm

我确信这是一件很简单的事情,但我并没有把它弄清楚。我正试图做一个简单的重复警报而且它永远不会被触发。我所拥有的是:

private void setupAlarms()
{
    AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

    Intent intent = new Intent(this, RepeatingAlarm.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(HelloAndroid.this, 0, intent, 0);

    GregorianCalendar fifteenSeconds = (GregorianCalendar)Calendar.getInstance();
    fifteenSeconds.add(Calendar.MINUTE, 0);
    fifteenSeconds.set(Calendar.SECOND, 15);

    alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
            SystemClock.elapsedRealtime(), fifteenSeconds.getTimeInMillis(), pendingIntent);
}

这是从主onCreate调用中调用的。

我的闹钟接收器:

public class RepeatingAlarm extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Toast.makeText(context, R.string.hello, Toast.LENGTH_SHORT).show();
    }
}

在我的清单中,我补充说:

<receiver android:name=".RepeatingAlarm" android:process=":remote" />

任何帮助,非常感谢

1 个答案:

答案 0 :(得分:0)

您是否为BroadcastReceiver添加了一个intent过滤器? 代码可能在AndroidManifest.xml文件中看起来像这样:

    <receiver android:name=".RepeatingAlarm" android:exported="true">
        <intent-filter>
            <action android:name="intent id text" />
        </intent-filter>
    </receiver>

并在创建你的意图时做这样的事情:

Intent intent = new Intent("intent id text")

其中“intent id text”可以是您用来标识意图的任何字符串。如果您重启设备,Android警报也会重置,这可能是您需要查看的内容。

希望这有帮助。