HTML/JavaScript小工具

HTML/JavaScript小工具

2012年12月18日 星期二

Android Thread的限制!


  1. Do not block the UI thread 
  2. Do not access the Android UI toolkit from outside the UI thread

由第二點得知只能在UI Thread控制UI所以~~~Android提供了以下簡單方法:
這些方法可以讓你在另外一個執行緒控制UI

但是程式中過多這樣的寫法是不好的,於是發展了一個AsyncTask ,可將UI與背景想做的事分開,如此程式維護上比較清晰


要使用AsyncTask  必須Extends AsyncTask 做法如下:已下轉貼Android API低阿~


public void onClick(View v) {
    //你要執行時呼叫execute
    new DownloadImageTask().execute("http://example.com/image.png");
}

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
    /** The system calls this to perform work in a worker thread and
      * delivers it the parameters given to AsyncTask.execute() */
    protected Bitmap doInBackground(String... urls) {
        //這裡做你想在背景做的事,如由網錄下在圖檔等...
return loadImageFromNetwork(urls[0]);
    }
    
    /** The system calls this to perform work in the UI thread and delivers
      * the result from doInBackground() */
    protected void onPostExecute(Bitmap result) {
//這裡做在UI裡顯示什麼東西!如將網路抓來的圖片顯示在ImageView中
        mImageView.setImageBitmap(result);
    }
}
其他:


沒有留言:

張貼留言