我正在使用Glassware,它需要能够在Glassware的生命周期中随时显示警告对话框。从Google's GDK development guide可以看出,这需要一个有效的Context
对象。但是,我使用的是高频实时卡设计范例,因此它使用Service
(而不是Activity
)作为其主类。如果我尝试将服务作为上下文传递给警告对话框构造函数,我会得到BadTokenException
。
是否有建议的方法随时使用此类玻璃器皿显示警告对话框?我已经能够从Glassware菜单中成功显示它们,因为菜单确实是一个带有可用上下文对象的活动,但我也需要能够在菜单关闭时显示警报。
为了记录,我已经能够找到几个看起来非常hacky的可能解决方案:创建一个单独的对话主题活动,或者使用系统警报,如前两个帖子here中所示。如果有更好的方法,我宁愿避免这些。
修改 我已经接受了迄今给出的一个答案,但是如果有人知道更多的官员"要做到这一点,请发回第二个答案,我可能会接受它。
答案 0 :(得分:0)
创建一个CustomAlertDialogBuilder,扩展AlertDialog.Builder并将该服务用作上下文。
一旦你有了警告对话框,我就不相信你可以避免:
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);