Android中线程按功能分的话,可以分为两个,一个是主线程(UI线程),其他的都是子线程。
主线程不能执行那些耗时过长的代码或任务(执行耗时过长的代码会出现应用未响应的提示),所以都是使用子线程来执行耗时过长的代码,比如说下载文件等任务。
一般情况,子线程中执行过长的代码,都是需要进行更新UI操作。
但是Android中,为了防止安全,是不允许在子线程更新UI的,但是我们可以使用到Android官方给予的API来实现子线程更新UI的操作(本质上,这些API也是切换回了主线程来进行更新UI)
1、runOnUiThread
private void makeToastByRunOnUiThread(final String msg)
{
LoginActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(LoginActivity.this, msg, Toast.LENGTH_SHORT).show();
}
});
}
2、view.post
//方法五:通过view.post,更新UI主线程
private void makeToatByViewPost(View view,final String msg)
{
view.post(new Runnable() {
@Override
public void run() {
Toast.makeText(LoginActivity.this, msg, Toast.LENGTH_SHORT).show();
}
});
}
3、handler.post
private Handler handler = new