1.如果在使用seekbar 设置屏幕亮度时,连续滑动就会出现进度上圆点来回跳动,有可能也会发生ANR ,连续操作Settings数据库是耗时操作,所以容易发送anr
使用DisplayManager 可以去设置屏幕亮度
private void setBrightness(float brightness) {
//brightness 是0-1 float数据类型
try {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
DisplayManager mDisplayManager = mContext.getSystemService(DisplayManager.class);
Log.i(TAG,"mDisplayManager ="+mDisplayManager);
mDisplayManager.setTemporaryBrightness(brightness);
}
} catch (Exception e) {
e.printStackTrace();
}
}
滑动条停止的时候更新settings数据库
AsyncTask.execute(new Runnable() {
public void run() {
Log.i(TAG,"AsyncTask");
Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness);
}
});