Esempio Threads

 

Creare un nuovo progetto android chiamato HelloThreads

 

Creare un layout con una ProgressBar

<?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">
 
	<ProgressBar 
		android:id="@+id/progress"
		style="?android:attr/progressBarStyleHorizontal" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content" />
 
</LinearLayout>

 

Creare una activity

public class HelloThreadsActivity extends Activity {
 
	ProgressBar bar;
	Handler handler = new Handler() {
		@Override
		public void handleMessage(Message msg) {
			bar.incrementProgressBy(5);
		}
	};
	boolean isRunning = false;
 
	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		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;
	}
 
}

La comunicazione tra il thread e l'activity viene gestita tramite un Handler

AttachmentSize
HelloThreads.zip44.41 KB