问题
I am new to android. I am making an alarm clock. Its working perfectly until the user clears the app from the RAM. On searching, I found that broadcast receivers don't work if the app is cleared from the RAM. So, what exactly should I do? Will sending the broadcast from a service help? Also if you have a link to a good tutorial to Services in android, pls do share. Also let me know if there is some other way to solve my problem.
回答1:
In Xiaomi devices, you just have to add your app to Autostart list, to do so, follow these simple steps given below:
Open Security app on your phone.
Tap on Permissions, it'll show you two options: Autostart and Permissions
Tap on Autostart, it'll show you list of apps with on or off toggle buttons.
Turn on toggle of your app, you're done!
回答2:
You can register broadcast receivers either inside the activity at runtime or in the manifest. You want to adopt the latter approach
回答3:
In the past I have similar problems with AlarmManager, AlarmReceivers and this kind of things. There are some tips that can help you in your code:
- Make sure that you are scheduling your alarm correctly.
- Make sure that you are setting the propers permissions on the manifest.
- Take care if the device is locked or it was rebooted.
There is a quite useful tutorial that helps me to control and make a "Hello World!" example with AlarmManager: AlarmManager Repeating Example
Note: In API 19 and higher, the method setRepeating is not exactly (maybe the alarm triggers at 10:00 or at 10:15), so you must use setExact.
Hope it helps!
回答4:
You can register broadcast receiver in two ways
1. From your activity.
2. From your manifest.
if you registered broadcast throught activity, It wont receive after your activity is destroyed, So thats is where we register BroadcastReceiver
in manifest.
This link will help you BroadcastReceiver
来源:https://stackoverflow.com/questions/36738661/broadcast-receiver-not-working-when-app-is-cleared-from-ram