2017-04-07 128 views
0

我想实现一个示例计划,我希望每10秒显示一次面包。但计划方法只运行一次。是否有任何解决方案。 这里是我的代码计划执行程序的计划方法只执行一次

公共类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

阅读ScheduledExecutorService#schedule()ScheduledExecutorService#scheduleAt*

+0

请你可以建议的解决方案。 – user7144720

0

你应该寻找scheduleAtFixedRate方法之间的差异的文档。

scheduleAtFixedRate: 创建并执行一个 给定的初始延迟之后第一启用的定期操作,随后与给定的周期; 即执行将在initialDelay之后开始,然后 initialDelay +期间,然后initialDelay + 2 *期间,等等。 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);