Android 定时器的三种实现方法
  IWUVcGyrsaJJ 2023年11月02日 21 0


Android 定时器的三种实现方法

第一种:采用Handler与线程的sleep(long)方法

“`JAVA 
public class MainActivity extends Activity {
Handler handler;
private TextView tv;
int i = 0;
public boolean isstop = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);

// 定时器的三种实现方法
// -----------------------------------------------------------------------------
// 第一种:采用Handler与线程的sleep(long)方法

handler = new Handler() {
public void handleMessage(android.os.Message msg) {
tv.setText(i++ + "");

// 开启定时器线程
new Thread(new MyThread()).start();

};

};

}

public void start(View view) {
isstop = false;
// 开启定时器线程
new Thread(new MyThread()).start();

}

// 停止
public void stop(View view) {
isstop = true;

}

class MyThread implements Runnable {

@Override
public void run() {
if (!isstop) {

// TODO Auto-generated method stub
try {
Thread.sleep(1 * 1000);
Message msg = new Message();
msg.what = 1;
handler.sendMessage(msg);

} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

}

}

第二种:采用Handler的postDelayed(Runnable, long)方法

“`java
public class MainActivity extends Activity {
Handler handler;
private TextView tv;
int i = 0;
Runnable runnable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);

handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// 要做的事情
tv.setText(i++ + "");
handler.postDelayed(runnable, 2 * 1000);
}
};

}

public void start(View view) {
// 开启定时器线程
handler.postDelayed(runnable, 2 * 1000);//两秒后执行一次runnable的 run() 方法.

}

// 停止
public void stop(View view) {
handler.removeCallbacks(runnable);
}

}


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
IWUVcGyrsaJJ
最新推荐 更多