PDA

View Full Version : تابع Handler و تردها



smemamian
جمعه 15 آذر 1392, 16:32 عصر
سلام

اگه چندین ترد در یک کلاس از برنامه داشته باشیم همه رو با یه handler مدیریت می کنیم ؟
الان مثال زیر چرا خطا میده ؟
یک کلید درست کردم که با هربار کلیک کردن میلی ثانیه رو توی یک تکس ویو نشون میده، یه ادیت تکس درست کردم که اگه آدرس سایت رو داخلش وارد کردی و پس از کلیک کردن روی کلید دوم، آدرس رو توی یک وب ویو نمایش میده :
113558

final Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
TextView text = (TextView)findViewById(R.id.text);
Bundle bundle = msg.getData();
text.setText(bundle.getString("time"));
WebView web = (WebView)findViewById(R.id.web);
web.getSettings().setJavaScriptEnabled(true);
web.loadData(bundle.getString("url"), "text/html; charset=UTF-8", null);
}
};

Button btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Message msg = handler.obtainMessage();
Bundle bundle = new Bundle();
long millis = System.currentTimeMillis();
String str = String.valueOf(millis).toString();
bundle.putString("time", str);
msg.setData(bundle);
handler.sendMessage(msg);
}
});

EditText edittext = (EditText)findViewById(R.id.edittext);
final String url = edittext.getText().toString();

Button btn2 = (Button)findViewById(R.id.btn2);
btn2.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

Thread thread = new Thread(new Runnable() {
HttpClient client = new DefaultHttpClient();
@Override
public void run() {
// TODO Auto-generated method stub
try {
HttpGet httpget = new HttpGet(url);
ResponseHandler<String> resstr = new BasicResponseHandler();
String str = client.execute(httpget,resstr);
Bundle bundle = new Bundle();
bundle.putString("url", str);
Message message = handler.obtainMessage();
message.setData(bundle);
handler.sendMessage(message);

} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});thread.start();

}
});

}