我使用以下代码启动一个广播接收器,它在设计的时间之后调用一个新的intent,但问题是没有调用intent。 警报由屏幕上的按钮调用,当指定时间点击按钮后,预期新意图开始。
private void alarm(){
br = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent i) {
Toast.makeText(c, "Rise and Shine!", Toast.LENGTH_LONG).show();
}
};
Log.v("ranjith","Inside setup");
registerReceiver(br, new IntentFilter("com.example.ads.test"));
pendingIntent = PendingIntent.getBroadcast( this, 0, new Intent(getApplicationContext(),test.class),0);
alarmManager = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));
}
答案 0 :(得分:0)
首先,您没有致电set()
上的setRepeating()
,setInexactRepeating()
或AlarmManager
来安排发送广播的事件。
其次,您的PendingIntent
不正确。使用以下内容与IntentFilter
:
pendingIntent = PendingIntent.getBroadcast( this, 0, new Intent("com.example.ads.test"), 0);
第三,使用带有AlarmManager
的动态注册接收器是相当不寻常的,因为这意味着您的警报仅在您的应用程序运行时才有效。