记录一下,省的写完就完,再写还得百度了。
handler.postDelayed(this, 1000); 只会运行一次,想要循环,可以用递归的方法,
在run里面再调:
handler.postDelayed(this, 1000);
停止循环的方法:
handler.removeCallbacks(runnable);
直接上代码,利用handler来实现UI线程的更新。
Handler handler=new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化
periscopeLayout = (PeriscopeLayout) findViewById(R.id.periscope);
final Runnable runnable=new Runnable() {
@Override
public void run() {
//要做的事情
//调用添加泡泡的方法
int i;
for(i=0;i<20;i++) {
periscopeLayout.addHeart();
}
handler.postDelayed(this, 1000);
}
};
//使用按钮启动
btn_start = (Button) findViewById(R.id.btn_start);
btn_start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
handler.postDelayed(runnable, 1000);//每1秒执行一次runnable.
}
});
}