我有Service类和非活动类。我想将上下文从Service类传递给Non活动类。 这是我的代码:
Service class;
method(Service.this)
Non Activity class;
method(Contex context)
我正在" Dialog抛出Unable to add window — token null is not for an application” with getApplication() as context
这个错误。怎么解决这个?
答案 0 :(得分:1)
您无法从服务中显示对话框。
如果你真的想要显示一个对话框。
尝试启动一个Activity并将Activity的主题设置为Theme.Dialog。
当您需要从Service更改GUI时,您无法直接从服务中执行此操作。有关更多指南,请参阅this
答案 1 :(得分:1)
本质上,服务是Android UI-less组件,因此您无法在服务中显示任何内容。但是请记住两个选项。
Toast: Toast可以在任何环境中显示(活动,服务......)
A dialog-looked activity :您可以创建一个看起来完全是对话框的活动(通过应用对话框主题),然后在服务中显示它。
(@ ahmad aghazadeh'答案)
答案 2 :(得分:0)
要显示AlertDialog
左右,您必须拥有Activity
上下文参考,而不是Application
上下文或Service
上下文。据我所知,您可以使用服务上下文弹出Toast消息。
答案 3 :(得分:0)
在服务中添加此代码
Intent dialogIntent = new Intent(this, myActivity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialogIntent);
在myActivity中调用AlertDialog