Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android多線程開發保持清晰順序實踐

android多線程開發保持清晰順序實踐

編輯:關於Android編程

今天在開發的過程中需要給之前的程序加上多線程操作,避免networrk on mainthread。

由於代碼很多,變量之間錯綜復雜,後面的變量需要在前面代碼的線程中獲取,線程的同步就非常關鍵

我知道的線程同步的方法主要是thread.join(),等待另一個線程的完成再繼續進行本線程的工作。

不過在android中,mainThread控制著屏幕的刷新,如果調用在main thread中調用join將會導致屏幕無法刷新。

所以,我們可以通過專門新建一個線程,用這個線程來等待已有線程的結束,在已有線程結束後,在通過runOnUIThread方法通知屏幕刷新。

這是我們的耗時線程(模擬運行3秒):

 

thread1=new Thread(new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub
				try {
					Thread.sleep(3000);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		thread1.start();

 

 

這是通知線程:

 

new Thread(new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub
				try {
					thread1.join();
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}runOnUiThread(new Runnable() {
					public void run() {
					tv2.setText(Tread complete!);
					}
				});
			}
		}).start();

為了可以直觀的看到效果,我們可以在之前timerThread源碼的基礎上添加這段代碼,就可以看到,即使在thread1運行的時候,ui線程仍然可以更新。

 

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved