我正在为屏幕闪烁编写代码。屏幕在某个时间间隔内反复闪烁,所以我在asynctask上做了那个工作。一切正常,直到我改变我的屏幕方向(在运行时,我在我的项目中也有我可以改变方向的设置偏好)。 这是非常粗略的代码:
static WindowManager.LayoutParams lp = MyClass.this.getWindow().getAttributes();
MyClass.lp.screenBrightness = MyClass.brightnessValue / 100.0f;
if(brightnessValue == 100.0f){
MyClass.brightnessValue = 1.0f;
}
else{
MyClass.brightnessValue = 100.0f;
}
handler.sendEmptyMessage(1); //because i can't access this from non ui thread so applying brightness on handler
//内部处理程序:
case 1: MyClass.this.getWindow().setAttributes(lp);
break;
知道为什么代码在方向改变时会破坏
编辑:确定进一步测试后我发现暂停后其亮度变化不起作用。我的意思是当我通过按回来关闭活动时,当我再次运行应用程序时,屏幕闪烁不起作用。但是,如果我开始新的活动并再次回到我的主要活动,那么屏幕闪烁工作。所以我的屏幕闪烁并没有在两种情况下出现:
1)当我回去退出应用程序时(我的意思是当我到达主屏幕或 其他来自我的主要活动)
2)当我通过启动偏好将方向模式更改为横向时 活动然后我按回来,主要活动以横向模式开始。
感谢。