如何实现报警接收器?

时间:2019-01-27 15:46:12

标签: java android alarmmanager android-broadcast

我开始学习AlarmManager,并且我想触发广播以从服务器获取一些信息。文档中清楚了意图和警报,但是我找不到关于接收端外观的任何信息。

这是我的警报代码:

AlarmManager aMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
aMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, 
            SystemClock.elapsedRealtime() + 10000, 
            AlarmManager.INTERVAL_FIFTEEN_MINUTES, pendingIntent);

我的AlarmReceiver像这样:

public class AlarmReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(MainActivity.TAG, "Received intent");
    }
}

但是什么也没发生。我添加了一个按钮来触发广播,如下所示:

public void btnTrigger_onClick(View view) {
    Intent i = new Intent(this, AlarmReceiver.class);
    sendBroadcast(i);
}

而且这里什么也没发生。

我以前曾经使用过广播,但只在registerReceiver中使用过广播,但是现在我不想在Activity中使用广播。

1 个答案:

答案 0 :(得分:0)

显式广播(其中Intent具有组件名称(即类)的广播)需要在清单中使用<receiver>元素才能起作用。