2015-04-27 60 views
0

我试图将调度程序对象传递给另一个活动并停止调度程序执行程序服务。我可否知道执行此操作的适当方法?将调度程序对象传递给另一个活动

scheduler = Executors.newSingleThreadScheduledExecutor(); 
scheduler.scheduleAtFixedRate(new Runnable() { 
    public void run() { 
     //get date 
     Date dateTime = new Date(); 
     String formattedDateTime = DATE_FORMAT.format(dateTime); 
    }, 0, 60L, TimeUnit.SECONDS); //End of Scheduler 
+0

张贴代码和错误信息 – Hanuman

+0

我试着停止对另一个活动,并感谢这个调度为您快速反应 – user123

+1

你如何停止调度对象试图阻止在同一个活动 – Hanuman

回答

0

我会用一个全局变量用于此目的,而不是试图从一个Activity传递到另一个调度。只要让你的scheduler变量public static,你可以从第二个Activity访问它。

但是,将调度程序传递给另一个Activity将不允许您停止它。您需要的是从呼叫返回scheduler.scheduleAtFixedRate()ScheduledFuture。将其存储在public static变量中,然后您可以从任何地方取消它。

+0

公共无效onToggleClicked(查看视图){ 布尔上=((ToggleButton)view).isChecked(); if(on == true){ //取消调度程序 scheduler.shutdown(); } else { statusText.setText(“CurrentStatus:ON”); }。这是我的代码的一部分,我会尝试在另一个活动中使用切换按钮关闭调度程序,但我无法停止调度程序 – user123

+0

是的,好的。这应该工作(对不起,我没有看到文档中的'shutdown()'方法)。请不要在评论中张贴代码,这很丑陋。如果您已经使用了我所指出的全局(静态)变量,请编辑您的原始问题并添加您现在具有的不起作用的代码。 –

相关问题