Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将上下文从服务传递到非活动类_Android - Fatal编程技术网

Android 将上下文从服务传递到非活动类

Android 将上下文从服务传递到非活动类,android,Android,我有服务课和非活动课。我想把上下文从服务类传递到非活动类。 这是我的密码: Service class; method(Service.this) Non Activity class; method(Contex context) 我在getApplication()中得到“Dialog Sprowing无法添加窗口-令牌null不适用于应用程序”as context此错误。如何解决此问题?若要显示警报对话框或其他内容,您必须具有活动上下文引用,而不是应用程序上下文或服务上下文。据我所知,

我有服务课和非活动课。我想把上下文从服务类传递到非活动类。 这是我的密码:

Service class;
method(Service.this)

Non Activity class;
method(Contex context)

我在getApplication()中得到“Dialog Sprowing
无法添加窗口-令牌null不适用于应用程序”as context
此错误。如何解决此问题?

若要显示
警报对话框
或其他内容,您必须具有
活动
上下文引用,而不是
应用程序
上下文或
服务
上下文。据我所知,您只需弹出带有服务上下文的消息即可。

在服务中添加此代码

Intent dialogIntent = new Intent(this, myActivity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialogIntent);

在myActivity中,您调用AlertDialog

时,无法显示来自服务的对话框

如果你真的想显示一个对话框

尝试启动活动并将活动的主题设置为Theme.Dialog


当您需要从服务中更改GUI时,您不能直接从服务中进行更改。请参阅更多指南

基本上,服务是无Android UI的组件,因此您不能从服务中显示任何内容。不过,有两个选项需要考虑

  • 祝酒词:可以从任何上下文(活动、服务等)显示祝酒词

  • 您可以创建一个看起来完全像对话框的活动(通过对其应用对话框主题),然后从服务中显示它。
    (@ahmad aghazadeh的回答)


您想显示的是警报吗?问题是您想对您的上下文做什么?是的..我想显示警报对话框您可以执行此活动
..