近期有一个循环任务的问题让人花了不少心思,根据网上查的,自己改造了一个,代码很简单,主要是实现为给一个TextView上实现每隔一秒刷新数字的功能,用来模拟循环任务,代码如下:
package com.example.test;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class RecycleActivity extends Activity{
TextView textView ;
private Button mButton ;
int count = 0 ;
private Handler handler ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recycle_layout) ;
textView = (TextView) this.findViewById(R.id.tv_ones) ;
mButton = (Button) this.findViewById(R.id.bt_ones) ;
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Message message = handler.obtainMessage(1);
handler.sendMessageDelayed(message, 1000);
}
}) ;
setHandler() ;
}
private void setHandler() {
handler = new Handler(){
public void handleMessage(Message msg){
switch (msg.what) {
case 1:
//UI操作
textView.setText( ""+ count ++) ;
Message message = handler.obtainMessage(1);
handler.sendMessageDelayed(message, 1000);
}
}
};
}
}
通过触发,执行了handleMessage中的一秒后发送消息的代码段,这样会不断地触发handleMessage本身。于是实现了循环任务。