我想在我的主要 Activity 中启动一个线程,每 x 秒执行一些操作。 这个方法正确吗?
取 self 的 oncreate 方法:
Thread thread = new Thread()
{
@Override
public void run() {
try {
while(true) {
sleep(5000);
do stuff
};
thread.start();
如果相关,它会启动视频播放器并每 5 秒检查一次缓冲区。
最佳答案
您可以使用 Java 的 ExecutorService
创建灵活有效的计时器:
// create executor that consists of 1 thread
final ExecutorService e = Executors.newScheduledThreadPool(1);
// schedule it to execute every 5000 ms starting from now
((ScheduledExecutorService) e).scheduleAtFixedRate(new Runnable(){
@Override
public void run() {
// your repeating task
}
}, 0, 5000, TimeUnit.MILLISECONDS);
这种方法更灵活,如果 Java 文档没有说谎的话,它会更精确,因为它独立于系统时钟的变化。
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html
关于java - 如何在android中创建一个循环临时 Action 的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374060/