要使Handler.postDelayed()
方法只循环两次,可以使用以下方法:
Handler
对象和一个Runnable
对象。Runnable
对象中定义需要循环执行的任务。Runnable
对象中使用计数器来记录循环次数。Runnable
对象中,当循环次数达到两次时,通过Handler
对象的removeCallbacks()
方法移除任务。Runnable
对象中,当循环次数未达到两次时,通过Handler
对象的postDelayed()
方法再次将任务添加到消息队列中。以下是示例代码:
import android.os.Handler;
public class MainActivity extends AppCompatActivity {
private Handler handler;
private Runnable runnable;
private int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
// 执行需要循环执行的任务
// ...
count++; // 增加循环次数
if (count < 2) {
// 循环次数未达到两次,再次将任务添加到消息队列中
handler.postDelayed(runnable, 1000); // 延迟1秒执行
} else {
// 循环次数达到两次,移除任务
handler.removeCallbacks(runnable);
}
}
};
// 第一次将任务添加到消息队列中
handler.postDelayed(runnable, 1000); // 延迟1秒执行
}
}
在上述代码中,handler.postDelayed(runnable, 1000)
表示将runnable
任务延迟1秒后执行。通过增加计数器count
来记录循环次数,当循环次数达到两次时,使用handler.removeCallbacks(runnable)
移除任务。
领取专属 10元无门槛券
手把手带您无忧上云