歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android 怎麼啟動一個工作線程及線程如何與UI線程交互

Android 怎麼啟動一個工作線程及線程如何與UI線程交互

日期:2017/3/1 11:08:59   编辑:Linux編程

復雜耗時的操作,常常會阻塞UI主線程,從而引起程序卡死!針對這種情況,可以通過簡單的策略規避:新開一個工作線程,在工作線程中執行復雜操作,操作完畢之後,

通過Handler通知UI線程,更新狀態信息!關鍵代碼,請參閱下面:

  1. private void SynTask() {
  2. new Thread() {
  3. @Override
  4. public void run() {
  5. if (IsHaveInternet()){// 聯網
  6. DowloadData();//下載數據
  7. //通知UI
  8. Message msg = new Message();
  9. msg.what = mDonlandEnd;
  10. handler.sendMessage(msg);
  11. }
  12. }
  13. }.start();
  14. }

UI主線程,怎麼通過handler接手工作線程的信息呢:

  1. Handler handler = new Handler() {
  2. @Override
  3. public void handleMessage(Message msg) {
  4. switch (msg.what) {
  5. casem mDonlandEnd:
  6. ShowToast(GetString(R.string.DonlandEnd));
  7. break;
  8. default:
  9. break;
  10. }
  11. }
  12. };

主要用到的類有:Android.os.Handler、android.os.Message及java.lang.Thread

Copyright © Linux教程網 All Rights Reserved