我使用以下代码来保持屏幕:
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)
有没有办法FLAG_KEEP_SCREEN_ON在代码中禁用/删除后面的代码?(我希望屏幕正常淡出).
谢谢!
我想实现的东西里面AsyncTask像这样。
@Override
protected void onPreExecute() {
super.onPreExecute();
...
// prevent screen sleep
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
@Override
protected void onPostExecute(List<Result> results) {
super.onPostExecute(results);
getWindow().clearFlag (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
...
}
Run Code Online (Sandbox Code Playgroud)
但是我Cannot resolve method getWindow()在Android Studio中收到错误“ ”。我想念什么?
更新资料
我的AsyncTask的构造函数是:
public MyTask(ProgressDialog pDlg) {
progressDlgReference = new WeakReference<>(pDlg);
progressDlg = progressDlgReference.get();
context = progressDlg.getContext();
...
}
Run Code Online (Sandbox Code Playgroud)
我尝试强制转换context为,Activity但出现运行时错误((Activity) context).getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);?