在广播接收器内启动意图

时间:2013-09-17 16:23:13

标签: android broadcastreceiver

我使用以下代码启动一个广播接收器,它在设计的时间之后调用一个新的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 ));
}

1 个答案:

答案 0 :(得分:0)

首先,您没有致电set()上的setRepeating()setInexactRepeating()AlarmManager来安排发送广播的事件。

其次,您的PendingIntent不正确。使用以下内容与IntentFilter

对齐
pendingIntent = PendingIntent.getBroadcast( this, 0, new Intent("com.example.ads.test"), 0);

第三,使用带有AlarmManager的动态注册接收器是相当不寻常的,因为这意味着您的警报仅在您的应用程序运行时才有效。