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;
}