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
Trang 1ProcessBar 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;
Trang 2import 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)