为什么这段代码不能在HTC上运行,而是在其他安卓手机上运行



我的意思是我写了这段代码:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

它运行在索尼,三星...但它是HTC手机(野火S)上的错误。为什么?

也许这就是原因?

java.lang.IllegalArgumentException: View not attached to window manager
at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:381)
at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:226)
at android.view.Window$LocalWindowManager.removeView(Window.java:432)
at android.app.Dialog.dismissDialog(Dialog.java:278)
at android.app.Dialog.access$000(Dialog.java:71)
at android.app.Dialog$1.run(Dialog.java:111)
at android.app.Dialog.dismiss(Dialog.java:268)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:169)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3691)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
at dalvik.system.NativeStart.main(Native Method)
当您将此

标志设置为其窗口时,您的活动似乎不可见。相反,我建议您向任何视图添加以下属性。

android:keepScreenOn="true"

另一个原因可能是由于方向变化。如果您正在运行 AsyncTask,同时方向发生了变化,它实际上会破坏活动并重新创建它。现在,如果 AsyncTask 完成其作业,它将尝试更新不再可用的活动并崩溃。

最新更新