Android中切换到主线程执行的方法

这篇文章主要介绍了Android中切换到主线程执行的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

方法一: view.post(Runnable runnable)

使用 view 对象,调用 post 方法即可在主线程中执行里边的代码,postDelayed 是延时执行,也可以达到相同的效果。例如:

 textView.post(new Runnable() { @Override public void run() { textView.setText("更新textView"); } }); 

方法二:runOnUiThread(Runnable runnable)

在 Acitivity 中直接调用 runOnUiThread 或者将 Activity 的 context 对象传入子线程调用。例如:

 runOnUiThread(new Runnable() { public void run() { textView.setText("更新textView"); } } 

方法三:handler.post(Runnable runnable)

如果是在主线程可以直接 new 一个 Handler 对象,如果是在子线程需要获取主线程的 Looper 和 Queue

 // 主线程 Handler handler = new Handler(); // 子线程 Handler handler = new Handler(Looper.getMainLooper()); 

然后调用 post 方法,或者 postAtTime、postAtDelayed 即可。例如:

 handler.post(new Runnable() { @Override public void run() { textView.setText("更新textView"); } }); 

方法四:handler.sendMessage(Message message)

这个是比较常用的方法通过 sendMessage 发送消息,然后在 handleMessage 中进行处理。例如:

 Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); // 处理消息 textView.setText("更新textView" + msg); switch(msg.what) { case 0: // 处理指定消息 break; } } }; handler.sendEmptyMessage(0);

方法五:使用 AsynTask

 AsyncTask asyncTask = new AsyncTask() { @Override protected Object doInBackground(Object[] objects) { return null; } @Override protected void onPostExecute(Object o) { super.onPostExecute(o); } }; 

doInBackground 方法执行是在子线程中,其返回结果会传递到 onPostExecute 方法中,onPostExecute 就是运行在主线程。

以上就是几种常用的切换到主线程执行的方法,更多相关Android切换到主线程执行内容请搜索html中文网以前的文章或继续浏览下面的相关文章希望大家以后多多支持html中文网!

以上就是Android中切换到主线程执行的方法的详细内容,更多请关注html中文网其它相关文章!

赞(0) 打赏
未经允许不得转载:html中文网首页 » 移动

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

1/1