Trung tâm Tin học – ĐH KHTN ProcessBar Bài này mình đi chuyên xâu về cách xử lý tiến trình. Có thể trên PC có bộ vi xử lý nhanh nên các bạn có thể không cần lập trình chuyên sâu về tiến trình, nhưng trên các thiết bị di động, bộ vi xử lý có thể yếu hơn nhiều so với PC. Vậy nên khi lập trình các chương trình lớn, nặng thì các bạn nên nghiên cứu làm tốt phần tiến trình thì ứng dụng của bạn sẽ chạy nhanh hơn khá nhiều. Sau đây mình sẽ demo 1 ứng dụng nhỏ về tiến trình như sau: Các bạn tạo 1 project như sau: Project name: ProcessBar Build Target: Android 2.3.3 Application name: ProcessBar Package name: com.dac.ProcessBar Create Activity: ProcessBar Các bạn tạo phần giao diện trong phần Main như sau: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Nobilomo_1990@yahoo.com" /> <ProgressBar android:id="@+id/progress" style="?android:attr/progressBarStyleHorizontal" android:layout_height="wrap_content" android:layout_width="fill_parent"> </ProgressBar> </LinearLayout> Vậy mình đã tạo 1 ProgressBar để minh họa về chuyện chạy tiến trình. Kế tiếp các bạn code trong file ProcessBar.java như sau: package com.dac.ProcessBar; import android.app.Activity; import android.os.Bundle; Lập trình Android – http://laptrinhdidong.vn Page 1 Trung tâm Tin học – ĐH KHTN import android.os.Handler; import android.os.Message; import android.widget.ProgressBar; public class ProcessBar extends Activity { ProgressBar bar; Handler handler=new Handler() { @Override public void handleMessage(Message msg) { bar.incrementProgressBy(5); } }; boolean isRunning=false; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bar=(ProgressBar)findViewById(R.id.progress); } public void onStart() { super.onStart(); bar.setProgress(0); Thread background=new Thread(new Runnable() { public void run() { try { for (int i=0;i<20 && isRunning;i++) { Thread.sleep(1000); handler.sendMessage(handler.obtainMessage()); } } catch (Throwable t) { } } }); isRunning=true; background.start(); } public void onStop() { super.onStop(); isRunning=false; } } Vậy tiến trình sẽ ngũ (sleep) trong 1s để CPU xử lý chuyện gì đó (1 tiến trình khác của ứng dụng chạy song song chẳng hạn). Lập trình Android – http://laptrinhdidong.vn Page 2 Trung tâm Tin học – ĐH KHTN Lập trình Android – http://laptrinhdidong.vn Page 3 . xâu về cách xử lý tiến trình. Có thể trên PC có bộ vi xử lý nhanh nên các bạn có thể không cần lập trình chuyên sâu về tiến trình, nhưng trên các thiết bị di động, bộ vi xử lý có thể yếu hơn. khi lập trình các chương trình lớn, nặng thì các bạn nên nghiên cứu làm tốt phần tiến trình thì ứng dụng của bạn sẽ chạy nhanh hơn khá nhiều. Sau đây mình sẽ demo 1 ứng dụng nhỏ về tiến trình. super.onStop(); isRunning=false; } } Vậy tiến trình sẽ ngũ (sleep) trong 1s để CPU xử lý chuyện gì đó (1 tiến trình khác của ứng dụng chạy song song chẳng hạn). Lập trình Android – http://laptrinhdidong.vn