2015-04-27 63 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()'方法)。請不要在評論中張貼代碼,這很醜陋。如果您已經使用了我所指出的全局(靜態)變量,請編輯您的原始問題並添加您現在具有的不起作用的代碼。 –

相關問題