我有点问题。在我的Android应用程序中,我必须连接到在线服务器。 应使用单击按钮和后台服务调用连接。我知道我必须将网络连接放在一个线程中,但我不知道它是如何工作的。 我把调用放在一个自己的方法中创建一个线程,但在编译时我得到了一条错误信息。
这是我的代码:
按钮:
ImageView refresher = (ImageView)findViewById(R.id.imgRefresh);
refresher.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
httpThread();
}
});
线程方法:
private void httpThread(){
final Handler h = new Handler();
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
h.post(new Runnable(){
@Override
public void run() {
try{
vomServerholenUndSpeichern();
FileInputStream inStream = null;
try {
inStream = openFileInput("test.xml");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
leseDatei(inStream);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
createListView("test.xml");
System.out.println(inStream);
drawListView();
} catch (Exception e){
e.printStackTrace();
}
}
});
}
});
thread.start();
}
有人可以帮我解决问题吗?
答案 0 :(得分:0)
你必须使用AsyncTask,并不困难。
AsyncTask是在连接操作期间避免阻止UI的必要条件,AsyncTask的doInbackGround方法用于此类操作(它在与UI不同的线程中运行),而int onPostExecute(在UI上运行)您将管理您的httpResult的任务;)