Is There A Way To Keep A Repeating Alarm Working After Existing The App That Uses A Broadcast Receiver?
I am new on Android. I am trying to create an application that uses BroadcastReceiver to execute a function on the main activity triggered by a repeating alarm. I read that I had t
Solution 1:
I think, the reason why your alarm stops working when your app isn't running is that you're registering your AlarmReceiver locally with registerReceiver
. If you want to register your AlarmReceiver so that it keeps working even when your app isn't running, you need to register it inside AndroidManifest.xml
.
Firstly, add your reciever into AndroidManifest.xml
like this:
<application>
//...
<receiver android:name=".AlarmReceiver">
</receiver>
//...
</application>
And set your alarm like this (Remember: Don't set alarm interval too short, set at least 1 minute; you set ur interval 1,5 second in ur code - it may not work):
intinterval=60 * 1000;
Intent intent=newIntent(this, AlarmReceiver.class);
PendingIntentpendingIntent= PendingIntent.getBroadcast(this, 1, intent, 0);
AlarmManageralarmManager= (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent);
And just do what you want to do when alarm triggers inside onRecieve:
publicclassAlarmReceiverextendsBroadcastReceiver {
@OverridepublicvoidonReceive(Context context, Intent intent) {
AudioManageraudioManager= (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
SharedPreferencessharedPreferences= context.getSharedPreferences("Settings", 0);
int iDefValue=0;
int iDayAlarmVal= sharedPreferences.getInt("something", iDefValue);
// and so on...
}
}
Post a Comment for "Is There A Way To Keep A Repeating Alarm Working After Existing The App That Uses A Broadcast Receiver?"