5

在我的项目中,我试图以编程方式打开optionsMenu,而无需单击用户的菜单键。我试过 openOptionsMenu()但它给了我一个像这样的错误android.view.WindowManager$BadTokenException: Unable to add window -- ..为什么会这样......解决方案是什么......

08-13 14:53:02.687: E/AndroidRuntime(1213): 致命异常: main 08-13 14:53:02.687: E/AndroidRuntime(1213): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com. veytila.candideye/com.veytila.candideye.MainActivity}:android.view.WindowManager$BadTokenException:无法添加窗口--令牌空无效;您的活动正在运行吗?

4

2 回答 2

2

感谢您的回复.....我从 Mr.Nandeesh 的帖子中找到了解决方案。我刚刚添加了以下代码及其工作...

 public void onResume()
{
    new Handler().postDelayed(new Runnable() { 
       public void run() { 
           openOptionsMenu(); 
       } 
    }, 500); 

    super.onResume();
}
于 2012-08-13T10:34:37.333 回答
1

我相信您是在 Oncreate 或 onResume 中执行此操作的。只有在初始化活动窗口后,您才需要调用此 api。一种方法是将 onresume 中的延迟可运行文件发布到 ui 线程。

于 2012-08-13T10:12:00.083 回答