1/15

Lecture Mobile Application Development (119310)

Android Framework Basics

2/15

Agenda

3/15

UI-Thread

4/15

UI-Thread

5/15

UI-Thread

6/15

UI-Thread

7/15

UI-Thread

8/15

UI-Thread

public void onClick(View v) {
    new Thread(new Runnable() {
        public void run() {
            final Bitmap bitmap = loadImageFromNetwork("http://example.com/image.png");
            mImageView.post(new Runnable() {
                public void run() {
                    mImageView.setImageBitmap(bitmap);
                }
            });
        }
    }).start();
}

9/15

UI-Thread

10/15

Multithreading using AsyncTask

center

11/15

Multithreading using AsyncTask

 private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
     protected Long doInBackground(URL... urls) {
         int count = urls.length;
         long totalSize = 0;
         for (int i = 0; i < count; i++) {
             totalSize += Downloader.downloadFile(urls[i]);
             publishProgress((int) ((i+1 / (float) count) * 100));
         }
         return totalSize;
     }
     protected void onProgressUpdate(Integer... progress) {
         setProgressPercent(progress[0]);
     }
     protected void onPostExecute(Long result) {
         showDialog("Downloaded " + result + " bytes");
     }
 }

12/15

Multithreading using AsyncTask

new DownloadFilesTask().execute(url1, url2, url3);

13/15

Android-Assignment - AsyncTask

14/15

Summary

15/15

Recab Questions