Hy!线程退出由于未捕获的异常
我的代码:
Thread thread = new Thread(){
@Override
public void run() {
while (true)
{
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.obj.toString()!= null)
{
JSONParse json = null;
try {
Log.e("Channel_State",msg.obj.toString());
json = new JSONParse(msg.obj.toString());
String state = json.getChannelState();
id = state;
TextView tv2 = (TextView)findViewById(R.id.mainscreen_state);
tv2.setText("Channel State: "+ state);
Log.e("State",state);
} catch (final Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
runOnUiThread(new Runnable() {
public void run() {
Toast toast ;
toast = Toast.makeText(getApplicationContext(), "Error" + e.getMessage(), 500);
Log.e("Error",e.getMessage());
toast.show();
}
});
}
}
else
{
runOnUiThread(new Runnable() {
public void run() {
Toast toast ;
toast = Toast.makeText(getApplicationContext(), "error", 500);
toast.show();
}
});
}
}
};
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("session_id", settings.getString("session_id","error")));
params.add(new BasicNameValuePair("channel_id",String.valueOf(settings.getInt("channel_id", -1))));
HttpConnection con = new HttpConnection(params, "http://surfkid.redio.de/getChannelImage", handler);
con.start();
try {
Log.e("Sleep","Begin");
this.sleep(5000);
Log.e("Sleep","End");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
Log.e("Sleep","Fail");
}
}
}
};
thread.start();
登录:
02-10 00:01:29.044: ERROR/AndroidRuntime(1248): Uncaught handler: thread Thread-13 exiting due to uncaught exception
02-10 00:01:29.054: ERROR/AndroidRuntime(1248): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
02-10 00:01:29.054: ERROR/AndroidRuntime(1248): at android.os.Handler.<init>(Handler.java:121)
02-10 00:01:29.054: ERROR/AndroidRuntime(1248): at android.skiptvad.MainScreen$6$1.<init>(MainScreen.java:258)
02-10 00:01:29.054: ERROR/AndroidRuntime(1248): at android.skiptvad.MainScreen$6.run(MainScreen.java:258)
请帮帮忙!
嗨,感谢这篇文章,我不知道HandlerThread。非常便利! – 2011-02-10 00:42:52