getWindow()无法在AsyncTask内部解析

TRX*_*TRX -1 android android-asynctask android-studio

我想实现的东西里面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);

cod*_*gic 5

正如您从文档中 看到getWindow()是的方法Activity。而且,由于您不在中Activity,因此该方法不可用。

因此,您需要参考Activity才能识别此方法。

现在,我看不出多大你的代码,但你可以通过ContextActivity和演员,其中引用的方法。

因此,您将像这样传递上下文,然后将其转换为Activity

这样的答案应该会给您更多帮助