我确信这是一件很简单的事情,但我并没有把它弄清楚。我正试图做一个简单的重复警报而且它永远不会被触发。我所拥有的是:
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" />
任何帮助,非常感谢
答案 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警报也会重置,这可能是您需要查看的内容。
希望这有帮助。