Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android中實現Runnable接口簡單例子

Android中實現Runnable接口簡單例子

編輯:Android開發實例

本課講的是如何實現一個Runnable,在一個獨立線程上運行Runnable.run()方法.Runnable對象執行特別操作有時叫作任務。
Thread和Runnable都是基礎的類,靠他們自己,能力有限。作為替代,Android有強大的基礎類,像HandlerThread,AsyncTask,IntentService。Thread和Runnable也是ThreadPoolExecutor的基礎類。這個類可以自動管理線程和任務隊列,甚至可以並行執行多線程。

定義一個實現Runnable接口的類

代碼如下:

public class PhotoDecodeRunnable implements Runnable {
    ...
    @Override
    public void run() {
        /*
         * Code you want to run on the thread goes here
         */
        ...
    }
    ...
}

實現run()方法

Runnable.run()方法包含了要執行的代碼。通常,Runnable裡可以放任何東西。記住,Runnable不會在UI運行,所以不能直接修改UI對象屬性。與UI通訊,參考Communicate with the UI Thread
在run()方法的開始,調用 android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);設置線程的權重,android.os.Process.THREAD_PRIORITY_BACKGROUND比默認的權重要低,所以資源會優先分配給其他線程(UI線程)
你應該保存線程對象的引用,通過調用 Thread.currentThread()

代碼如下:

class PhotoDecodeRunnable implements Runnable {
...
    /*
     * Defines the code to run for this task.
     */
    @Override
    public void run() {
        // Moves the current Thread into the background
        android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);
        ...
        /*
         * Stores the current Thread in the PhotoTask instance,
         * so that the instance
         * can interrupt the Thread.
         */
        mPhotoTask.setImageDecodeThread(Thread.currentThread());
        ...
    }
...
}

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