Android 进度条不显示

2024-02-03

private Handler handler = new Handler()
{
    @Override
    public void handleMessage(Message msg)
    {
        removeDialog(0);
        switch (msg.what)
        {
            case SUCCESS:
                Log.i("LoginActivity", "Got inputstream");
                final InputStream is = (InputStream)msg.obj;
                if (is != null)
                {
                    //TODO: examine the input stream, etc...
                }
                break;
            case FAILURE:
                Log.i("LoginActivity", "Login failed");
                //TODO: Failure handling
                break;
            default:
                break;
        }
    }
};

@Override
protected Dialog onCreateDialog(int id)
{
    switch (id)
    {
        case 0:
        {
            dialog = new ProgressDialog(this);
            dialog.setMessage("Please wait...");
            dialog.setIndeterminate(true);
            dialog.setCancelable(true);
            return dialog;
        }
    }
    return null;
}

public void loginRequest(String name,String password)
{   
    showDialog(0);
    loginThread thread = new loginThread(serverURL, name, password,getMyIMENumber(), handler);
    thread.start();
}

............

public class loginThread extends Thread {

String name;
String password;
InputStream is;
String Url;
String ime;

private final Handler handler;

   public loginThread(String Url,String name,String password,String ime,final Handler handler) {
       this.name = name;
       this.Url = Url;
       this.password = password;
       this.ime = ime;
       this.handler = handler;         
   }


   public void run() {
          try{
                  HttpClient httpClient = new DefaultHttpClient();
                  String loginURL = Url+"member/login";
                  HttpPost httppost = new HttpPost(loginURL);
                  HttpParams httpParameters = new BasicHttpParams();
                  List<NameValuePair> pairs = new ArrayList<NameValuePair>();
                  if(name.contentEquals(""))
                  {
                      pairs.add(new BasicNameValuePair("ime", ime));
                  }
                  else
                  {
                      pairs.add(new BasicNameValuePair("userName", name));
                      pairs.add(new BasicNameValuePair("password", password));                            
                  }                  


                  int timeoutConnection = 3000;
                  HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
                  // Set the default socket timeout (SO_TIMEOUT) 
                  // in milliseconds which is the timeout for waiting for data.
                  httppost.setEntity(new UrlEncodedFormEntity(pairs));
                  HttpResponse response = httpClient.execute(httppost);                           
                  HttpEntity entity = response.getEntity();
                  final InputStream is = entity.getContent();

                  Message message = new Message();
                  message.obj = is;
                  message.what = server.SUCCESS;
                  handler.sendMessage(message);
          }catch(Exception e){  
              Log.e("log_tag", "Error in http connection " + e.toString(), e);
              handler.sendEmptyMessage(server.FAILURE);
          }           

   }

}

进度对话框没有显示我在这里做错了什么!请帮我..

......................

// 从 DexFile.java 编译(版本 1.5:49.0,超级位) 公共最终类 dalvik.system.DexFile {

// 方法描述符 #8 (Ljava/io/File;)V // 堆栈:3,局部变量:2 public DexFile(java.io.File file) 抛出 java.io.IOException; 0 aload_0 [这个] 1 调用特殊 java.lang.Object() [1] 4 新的java.lang.RuntimeException [2] 7 重复 8 最不发达国家 [3] 10 调用特殊 java.lang.RuntimeException(java.lang.String) [4] 13 投掷 行号: [pc:0,行:4] 局部变量表: [pc: 0, pc: 14] 本地:此索引:0 类型:dalvik.system.DexFile [pc: 0, pc: 14] 本地:文件索引:1 类型:java.io.File

// 方法描述符 #18 (Ljava/lang/String;)V // 堆栈:3,局部变量:2 public DexFile(java.lang.String fileName) 抛出 java.io.IOException; 0 aload_0 [这个] 1 调用特殊 java.lang.Object() [1] 4 新的java.lang.RuntimeException [2] 7 重复 8 最不发达国家 [3] 10 调用特殊 java.lang.RuntimeException(java.lang.String) [4] 13 投掷 行号: [pc:0,行:5] 局部变量表: [pc: 0, pc: 14] 本地:此索引:0 类型:dalvik.system.DexFile [pc: 0, pc: 14] 本地:文件名索引:1 类型:java.lang.String

// 方法描述符 #22 (Ljava/lang/String;Ljava/lang/String;I)Ldalvik/system/DexFile; // 堆栈:3,局部变量:3 public static dalvik.system.DexFile loadDex(java.lang.String sourcePathName, java.lang.String outputPathName, int flags) 抛出 java.io.IOException; 0 新的 java.lang.RuntimeException [2] 3 重复 4 最不发达国家 [3] 6 调用特殊 java.lang.RuntimeException(java.lang.String) [4] 9 投掷 行号: [pc:0,行:6] 局部变量表: [pc: 0, pc: 10] 本地:sourcePathName 索引:0 类型:java.lang.String [pc: 0, pc: 10] 本地:outputPathName 索引:1 类型:java.lang.String [pc: 0, pc: 10] 本地:标志索引:2 类型:int

// 方法描述符 #28 ()Ljava/lang/String; // 堆栈:3,局部变量:1 公共 java.lang.String getName(); 0 新的 java.lang.RuntimeException [2] 3 重复 4 最不发达国家 [3] 6 调用特殊 java.lang.RuntimeException(java.lang.String) [4] 9 投掷 行号: [pc:0,行:7] 局部变量表: [pc: 0, pc: 10] 本地:此索引:0 类型:dalvik.system.DexFile

// 方法描述符 #30 ()V // 堆栈:3,局部变量:1 public void close() 抛出 java.io.IOException; 0 新的 java.lang.RuntimeException [2] 3 重复 4 最不发达国家 [3] 6 调用特殊 java.lang.RuntimeException(java.lang.String) [4] 9 投掷 行号: [pc:0,行:8] 局部变量表: [pc: 0, pc: 10] 本地:此索引:0 类型:dalvik.system.DexFile

// 方法描述符 #32 (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class; // 堆栈:3,局部变量:3 public java.lang.Class loadClass(java.lang.String name, java.lang.ClassLoader 加载器); 0 新的 java.lang.RuntimeException [2] 3 重复 4 最不发达国家 [3] 6 调用特殊 java.lang.RuntimeException(java.lang.String) [4] 9 投掷 行号: [PC:0,行:9] 局部变量表: [pc: 0, pc: 10] 本地:此索引:0 类型:dalvik.system.DexFile [pc: 0, pc: 10] 本地:名称索引:1 类型:java.lang.String [pc: 0, pc: 10] 本地:加载器索引:2 类型:java.lang.ClassLoader

// 方法描述符 #37 ()Ljava/util/Enumeration; // 签名: ()Ljava/util/Enumeration; // 堆栈:3,局部变量:1 公共java.util.Enumeration条目(); 0 新的 java.lang.RuntimeException [2] 3 重复 4 最不发达国家 [3] 6 调用特殊 java.lang.RuntimeException(java.lang.String) [4] 9 投掷 行号: [pc:0,行:10] 局部变量表: [pc: 0, pc: 10] 本地:此索引:0 类型:dalvik.system.DexFile

// 方法描述符 #30 ()V // 堆栈:3,局部变量:1 protected void Finalize() 抛出 java.io.IOException; 0 新的 java.lang.RuntimeException [2] 3 重复 4 最不发达国家 [3] 6 调用特殊 java.lang.RuntimeException(java.lang.String) [4] 9 投掷 行号: [PC:0,行:11] 局部变量表: [pc: 0, pc: 10] 本地:此索引:0 类型:dalvik.system.DexFile

// 方法描述符 #42 (Ljava/lang/String;)Z public static native boolean isDexOptNeeded(java.lang.String arg0) 抛出 java.io.FileNotFoundException, java.io.IOException; }


不要打电话thread.run() but thread.start().

run()调用函数run()在同一个线程上。start()将在新线程中调用它。目前,GUI 线程被阻塞,因为它执行应在后台线程中完成的操作。

您可以通过以下方式调用线程:

Thread thread = new Thread(new loginThread(serverURL, name, password,getMyIMENumber()));
thread.start();

或者让你的登录线程extend线程而不是实现 Runnable。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 进度条不显示 的相关文章

随机推荐