【发布时间】:2020-08-17 21:50:52
【问题描述】:
我编写了一个安卓应用程序,它通过改变电量来检查电池电量,并在电量达到一定值时发出警报。 我在我的应用程序中使用了广播接收器和后台服务。 它在所有 android 版本中都能正常工作,但在 android R 服务中,当打开省电模式时会停止。 我在几个具有不同 android 版本的模拟器和真实设备上测试了我的应用程序,并且工作正常,但在 android R 中存在问题。 有没有办法阻止服务停止?
我的服务类:
public class BatService extends Service {
private BatReceiver receiver = new BatReceiver();
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
BatteryLevelAsync async = new BatteryLevelAsync();
async.execute();
return START_STICKY;
}
@Override
public void onDestroy() {
unregisterReceiver(receiver);
super.onDestroy();
}
private class BatteryLevelAsync extends AsyncTask<Void,Void,Void>
{
@Override
protected Void doInBackground(Void... voids) {
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
return null;
}
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
【问题讨论】:
标签: android battery background-service battery-saver