当我运行我的应用程序时,我似乎间歇性地得到以下错误。
"活动已泄露窗口com.android.internal.policy.impl.PhoneWindow$DecorView@40521348,最初添加在这里"
我所做的就是在onCreate()方法中创建对话框,如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Create splash-screen object and pass in width and height (width and height are defined and valid, I just removed them from this post to make it more readable)
splash = new SplashScreen(MainActivity.this, width, height);
//Create dialog that will show splash-screen
loading_dialog = new Dialog(MainActivity.this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
//Set and display splash screen view
loading_dialog.setContentView(splash);
loading_dialog.show();
}
你知道是什么问题吗?
你可以在onCreate中创建对话框,但你不能显示它,因为活动还不可见。谷歌一下,有个例子可以告诉你怎么做
我认为你需要在展示对话框之前创建对话框。
你需要做的是:
loading_dialog.create().show();
而不是loading_dialog.show();
我发现类似的Q,你可以使用它们
活动已泄露窗口com.android.internal.policy.impl.PhoneWindow$DecorView@44f72ff0最初添加在这里
活动已经泄漏了最初添加的窗口
活动已泄露窗口com.android.internal.policy.impl.PhoneWindow$DecorView@46029dd0最初添加在这里
这可能是因为您在关闭Activity之前没有cancel()对话框。尝试在onStop()方法中对对话框执行cancel()。这应该会有所帮助。