在我的项目中,我尝试以编程方式打开 optionsMenu ,而无需点击用户的菜单键。我试过 openOptionsMenu(),但它给我一个错误,像这样 android.view.WindowManager $ BadTokenException:无法添加窗口 - .. 为什么它...这是什么解决方案...
08-13 14:53:02.687:E / AndroidRuntime(1213):致命异常:主要 08-13 14:53:02.687:E / AndroidRuntime(1213):java.lang.RuntimeException:无法启动活动ComponentInfo {com.veytila.candideye / com.veytila.candideye.MainActivity}:android.view.WindowManager $ BadTokenException :无法添加窗口 - 令牌null无效;你的活动在运行吗?
答案 0 :(得分:2)
感谢您的回复.....我找到了来自Nandeesh先生的解决方案。我刚刚添加了以下代码及其工作......
public void onResume()
{
new Handler().postDelayed(new Runnable() {
public void run() {
openOptionsMenu();
}
}, 500);
super.onResume();
}
答案 1 :(得分:1)
我相信你是在Oncreate或onResume中这样做的。只有在初始化活动窗口后才需要调用此api。一种方法是将你的onresume上的延迟runnable发布到ui线程。