我从客户端远程获取以下内容,因此我不知道他们正在使用什么硬件等.
java.lang.IllegalArgumentException: View not attached to window manager
at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200)
at android.view.Window$LocalWindowManager.removeView(Window.java:417)
at android.app.Dialog.dismissDialog(Dialog.java:279)
at android.app.Dialog.access$000(Dialog.java:72)
at android.app.Dialog$1.run(Dialog.java:108)
at android.app.Dialog.dismiss(Dialog.java:263)
at com..mysite.android.ActivityGame$1.onFinish(ActivityGame.java:154)
at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:118)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4203)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
Run Code Online (Sandbox Code Playgroud)
这是因为ProgressDialog而发生的
progressDialog = new ProgressDialog( this );
progressDialog.setMessage(getString(R.string.get_ready));
progressDialog.setCancelable(false);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMax(12);
progressDialog.show();
new CountDownTimer(3000, 250) {
@Override
public void onTick(long millisUntilFinished) {
//progressDialog.incrementProgressBy(1);
}
@Override
public void onFinish() {
progressDialog.dismiss(); //********* ERROR HAPPENS HERE *********
nextQuestion();
}
}.start();
Run Code Online (Sandbox Code Playgroud)
活动在清单中看起来像这样.
<activity android:theme="@style/GameTheme" android:name=".ActivityGame" android:screenOrientation="portrait" android:launchMode="singleTask" android:configChanges="keyboardHidden|orientation"></activity>
Run Code Online (Sandbox Code Playgroud)
那么这意味着什么呢?我认为它与被销毁的Activity有关,然后你可以看到我正确设置了configChanges.
Aja*_*jay 21
尝试:
if (pDialog.isShowing()) {
pDialog.cancel();
}
Run Code Online (Sandbox Code Playgroud)
在你的被覆盖onDestroy()或onStop()方法.
Sho*_*med 13
在您退出后尝试显示对话框时会出现此问题Activity.
我刚刚通过写下以下代码解决了这个问题:
public void onDestroy(){
super.onDestroy();
if(progressDialog!=null)
if(progressDialog.isShowing()){
progressDialog.cancel();
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,您从哪个类开始progressDialog,覆盖onDestroy()方法并以此方式执行.它解决了Activity泄露窗口问题.
| 归档时间: |
|
| 查看次数: |
23392 次 |
| 最近记录: |