0

我使用以下代码启动了一个广播接收器,它在指定时间后调用一个新的意图,但问题是没有调用意图。警报由屏幕上的按钮调用,当在指定时间后单击该按钮时,预计将启动新意图。

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 ));
}
4

1 回答 1

0

首先,您没有调用set(),setRepeating()setInexactRepeating(),AlarmManager来安排将发送您的广播的事件发生。

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

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

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

于 2013-09-17T16:28:24.557 回答