尝试显示ProgressDialog,但获取: 无法在未调用Looper.prepare()的线程内创建处理程序。
这是我的代码:
public class SocketThread implements Runnable {
BufferedReader in;
private ProgressDialog dialog;
public void run()
{
socket = null;
while (true)
{
// Loop until connected to server
while (socket == null){
dialog = new ProgressDialog(getApplicationContext());
dialog.setMessage("Connecting to " + gatewayString);
dialog.setIndeterminate(true);
dialog.setCancelable(true);
AdvancedMultipleSeriesGraph.this.runOnUiThread(new Runnable() {
public void run() {
dialog.show();
}
});
可以修复吗?
答案 0 :(得分:4)
您可以使用处理程序并使用Handler.post(Runnable)
,或者,如果您有活动上下文,则可以使用Activity.runOnUiThread(Runnable action)
答案 1 :(得分:0)
从不!!! 从与UI线程不同的线程执行UI更新。
解决方案可能是在创建线程时在处理程序上添加引用,以便您可以在UI线程中调度更新通知。