最近在復習下應用開發,直接上代碼
ThreadHandlerActivity.java
[java]
package cn.sanbo.test.threadhandler;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class ThreadHandlerDownActivity extends Activity implements
View.OnClickListener {
private TextView textView;
private boolean isExits = false;
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
int jd = (Integer) msg.obj;
if (jd == 100) {
textView.setText("耗時完成!");
} else {
textView.setText("耗時完成:" + jd + "%");
}
};
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init() {
this.findViewById(R.id.btnThread).setOnClickListener(this);
textView = (TextView) this.findViewById(R.id.tv_content);
}
public void onClick(View v) {
if (v.getId() == R.id.btnThread) {
if (!isExits) {
isExits = true;
new MyThread().start();
} else {
Toast.makeText(ThreadHandlerDownActivity.this, "耗時操作進行中,請等待~",
0).show();
}
}
}
class MyThread extends Thread {
public void run() {
super.run();
boolean isGoOn = true;
int jd = 0;
while (isGoOn) {
try {
jd++;
sleep(30);
Message msg = new Message();
msg.obj = jd;
handler.sendMessage(msg);
if (jd == 100) {
isGoOn = false;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
main.xml
[java]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<Button
android:id="@+id/btnThread"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="threadhandler" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="down "
android:textColor="@android:color/white"
android:gravity="center"
android:textSize="25sp"
android:id="@+id/tv_content"/>
</LinearLayout>