0

I am developing one android application, In which i need to call onReceive method of Alarmmanager from onReceive of another BroadcastReceiver i.e. Internet connectivity. Is it possible ? Or should i duplicate all my stuff in another BroadcastReceiver?

Mayura Devani
  • 440
  • 3
  • 17

2 Answers2

1

You can make a new intent from onReceive to trigger another broadcast receiver

@Override
public void onReceive(Context context, Intent intent) {
    Intent newIntent = new Intent("com.domain.yourboardcastreceiver");
    context.sendBroadcast(newIntent);
}
Rex Lam
  • 1,385
  • 1
  • 15
  • 23
0

In OnReceive(..) method of Internet Connectivity broadcast receiver, you can set alarm and thats how alarm manager will get triggered, eg :

@Override
public void onReceive(Context context, Intent intent) {
    Intent myIntent = new Intent(getBaseContext(), **AlarmReceiver**.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, myIntent, 0);
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}

Don't forget to register alarmmanager's receiver in your manifest file.

Hope it helps !

Abhinav Puri
  • 4,254
  • 1
  • 16
  • 28