HandlerActivity.java
package txlong.handler;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
public class HandlerActivity extends Activity {
private Button start, end, show;
private ProgressBar progress;
private Handler handler = new Handler();
private int tmp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
start = (Button) findViewById(R.id.start);
end = (Button) findViewById(R.id.end);
show = (Button) findViewById(R.id.show);
progress = (ProgressBar) findViewById(R.id.progress);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
handler.post(updateDate);
}
});
end.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
handler.removeCallbacks(updateDate);
}
});
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
progress.setVisibility(View.VISIBLE);
progress.setProgress(0);
handler.post(greate);
}
});
}
Runnable updateDate = new Runnable() {
@Override
public void run() {
Log.i("flag", "again");
handler.postDelayed(updateDate, 3000);
}
};
Runnable greate = new Runnable() {
@Override
public void run() {
if (progress.getProgress() < 100) {
tmp += 10;
progress.setProgress(tmp);
progress.setSecondaryProgress(tmp + 10);
handler.postDelayed(greate, 800);
} else {
handler.removeCallbacks(greate);
progress.setVisibility(View.GONE);
tmp = 0;
}
}
};
}
main.xml
<?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="200dip"
android:layout_height="wrap_content"
android:visibility="gone"/>
<Button android:id="@+id/start"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="start"
/>
<Button android:id="@+id/end"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="end"
/>
<Button android:id="@+id/show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="show"
/>
</LinearLayout>
分享到:
相关推荐
Android的Handler使用方法总结,不错的文档,跟大家分享分享
Android中handler的使用,处理多线程的使用
android 中Handler 的几种写法,很简单的demo,大神简单修改下,用的是Handler.Callback,的方法
作为android开发重要的一部分。handler起到了十分重要的作用。就像布局文件一样。这个很重要。文档中由于时间关系后期排版不是很好。希望读者见谅。
* 创建一个Handler对象,使用Handler对象h把Runnable的对象r压入队列 * 此时只会会执行Run()方法,但是不会开启新的线程 */ //Handler h = new Handler(); //h.post(r); /* * 在java中真正开启...
android Handler的使用,我也刚开始学习,从别处下载了给大家分享
在Android中使用AsyncTask和Handler线程间交互的方式,详情参见博客:http://www.cnblogs.com/plokmju/p/android_AsyncTask.html和http://www.cnblogs.com/plokmju/p/android_Handler.html
android handler runnable使用实例(关键是内部run中停止)
android demo,使用Handler的postDelay,Runnable run实现延时3秒的splash。
Android review handler的使用
主要介绍了android的handler使用方法,大家参考使用吧
在Android开发中,我们经常会遇到这样一种情况:在UI界面上进行某项操作后要执行一段很耗时的代码,比如我们在界面上点击了一个”下载“按钮,那么我们需要执行网络请求,这是一个耗时操作,因为不知道什么时候才能...
1.handler是什么? 2.handler怎么用? 3.为什么要用handler?
Android Handler类详解 Android Handler类详解 Android Handler类详解 Android Handler类详解
Android中的Handler很重要,但是很简单,学好Handler很重要~