简体   繁体   中英

BroadcastReceiver not calling onReceive from alarm

I've been stuck here for hours on what seems like such a trivial issue. My BroadcastReceiver doesn't seem to be receiving an alarm broadcast at all. I can see alarms are being set with "adb shell dumpsys alarm" but my onReceive method never is called.

This is the class:

public class AlarmReceiver extends BroadcastReceiver {

public void AlarmReceiver(){
    super();
}

@Override
public void onReceive(Context context, Intent intent) {
    Log.i("Alarm:", "Received alarm!");
}

and here is my MainActivity:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    scheduleAlarm();
}

private void scheduleAlarm(){

    Intent intent = new Intent(this,AlarmReceiver.class);

    final PendingIntent pIntent = PendingIntent.getBroadcast(this,19522,intent,PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
    alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 5000, pIntent);

    Log.i("Main", "Alarm Scheduled");
}

and my manifest file contains:

<receiver android:name="dt.wirelessproject.AlarmReceiver"></receiver>

Try this...

Your Receiver class constructor is may wrong. Just change your receiver class like this...

public class AlarmReceiver extends BroadcastReceiver {

  public AlarmReceiver(){ 
    super();
  }
  @Override
  public void onReceive(Context context, Intent intent) {
    Log.i("Alarm:", "Received alarm!");
  }
} 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM