Android从非活动创建AlertDialog

Android从非活动创建AlertDialog,android,Android,我的应用程序中的警报对话框有点问题。我的情况如下: 我有一个同步活动,它是通过HttpURLConnection连接到web服务,并在不同的类中解析来自它的结果。因此,如果服务器响应是某种错误,我有一个RPCErrorPacket,它将处理该错误,但它不是一个活动。整个响应的解析在一个线程中完成,我需要找到一种方法,从RPCErrorPacket创建警报对话框,该对话框将显示在同步活动中 如果可能的话有什么想法,或者如何实现这样的目标?如果我没记错的话,让服务或其他后台任务调用用户无法避免的东西

我的应用程序中的
警报对话框
有点问题。我的情况如下:

我有一个
同步活动
,它是通过
HttpURLConnection
连接到web服务,并在不同的类中解析来自它的结果。因此,如果服务器响应是某种错误,我有一个
RPCErrorPacket
,它将处理该错误,但它不是一个活动。整个响应的解析在一个
线程中完成,我需要找到一种方法,从RPCErrorPacket创建
警报对话框
,该对话框将显示在
同步活动中


如果可能的话有什么想法,或者如何实现这样的目标?

如果我没记错的话,让服务或其他后台任务调用用户无法避免的东西被认为是不好的做法。因此,我建议您考虑使用一个。在那里,你可以很容易地声明如果用户点击它应该发生什么

如果你的线程实际上是你活动的工作线程,那么你可能应该使用Android提供的一种方法在后台做一些不同步的事情,例如.rununuithread(newrunnable){ 运行() { //在此处执行所需操作。如果需要,请传递活动上下文。 }))


runOnUIThread是一种从非UI线程运行UI线程上可运行的方法。

这不是一种好的做法,但您可以将活动的静态实例保存在其构造函数中,然后只需将该实例的上下文传递给UI线程上的alertdailog当然
runOnUIThread(新的可运行…)

我是这样做的:

cancelDialog.dismiss();  // cancel the dialog which is already opened
Looper.prepare();  // preparing the looper
this.createDialog("Check your network settings!");  // creating the dialog with method
Looper.loop();   // loop
Looper.myLooper().quit();  // quit looper
Synchronization.this.finish(); // finish activity

您是否使用AsyncTask访问Web服务