推广一下我的个人博客小站: Z同学 期待大家的围观
需求
1.在华为手机中应用切换到后台后,打开其他app。需要我的应用后台仍然能够访问http,传输数据。
2.息屏后服务没有退出的话,需要继续后台运行,并进行网络数据的传输和请求
方案
1.添加应用到白名单中。代码如下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
try {
String pn= getPackageName();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (!pm.isIgnoringBatteryOptimizations(pn)) {
Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + pn));
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, REQUEST_CODE);