Java 通过线程显示ok cancel对话框
我有一个Android服务,它生成一个线程。这个线程等待网络数据,在收到数据后,我想显示Ok Cancel对话框Java 通过线程显示ok cancel对话框,java,android,multithreading,Java,Android,Multithreading,我有一个Android服务,它生成一个线程。这个线程等待网络数据,在收到数据后,我想显示Ok Cancel对话框 我得到的异常不能创建应该有Looper.prepare()的句柄。我添加了Looper.prepare()和Looper.loop(),然后现在我没有得到任何异常,但它会无限地等待。您可以使用如下代码中的处理程序在非UI线程中调用UI线程(显示警报对话框) new Thread(new Runnable() { public void run()
我得到的异常不能创建应该有
Looper.prepare()
的句柄。我添加了Looper.prepare()
和Looper.loop()
,然后现在我没有得到任何异常,但它会无限地等待。您可以使用如下代码中的处理程序在非UI线程中调用UI线程(显示警报对话框)
new Thread(new Runnable()
{ public void run()
{
try {
///do your stuff in
mHandlerShowDialog.post(mUpdateShowDialog);
///do your struff
}
} ).start();
final Handler mHandlerShowDialog= new Handler();
final Runnable mUpdateShowDialog = new Runnable() {
public void run() {
// show your dialog here
}
};
与其使用单一线程,不如使用AsyncTask,它也是Android的专用线程 您可以在AsyncTask的
doInBackGround
方法中等待数据,当您收到数据时,可以调用publishProgress()
,它将调用AsyncTask的onProgressUpdate
方法
在onProgressUpdate
中,您可以在不阻塞主线程的情况下更新UI,这也是在后台执行长时间操作(如网络监听等)的首选方法
检查AsyncTask以了解更多信息以及如何使用它
请显示代码和logcat错误。