我正在尝试实施一个示例计划,我希望每隔10秒显示一次toast。但是计划方法只运行一次。是否有任何解决方案。 这是我的代码
公共类MainActivity扩展了AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ScheduledExecutorService scheduledExecutorService= Executors.newScheduledThreadPool(1);
scheduledExecutorService.schedule(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Hello Schedule", Toast.LENGTH_LONG).show();
}
});
}
},
10, TimeUnit.SECONDS);
}
}
答案 0 :(得分:0)
阅读有关ScheduledExecutorService#schedule()
和ScheduledExecutorService#scheduleAt*
答案 1 :(得分:0)
您应该寻找 scheduleAtFixedRate 方法。
scheduleAtFixedRate: 创建并执行首先启用的定期操作 在给定的初始延迟之后,以及随后的给定时期; 也就是说,执行将在initialDelay之后开始 initialDelay + period,然后是initialDelay + 2 * period,依此类推。 Documentaion
示例强>
ScheduledExecutorService scheduledExecutorService;
scheduledExecutorService = Executors.newScheduledThreadPool(1);
scheduledExecutorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),"Hello Schedule",Toast.LENGTH_LONG).show();
}},2,10,TimeUnit.SECONDS);