2013-04-26 90 views
2

我開發了一個應用程序,其中start,pause,resumefinish按鈕。如何更新服務類中更新的textview文本

它在使用線程和處理程序的活動中正常工作。

如果用戶點擊start button,則會啓動一個線程並顯示textviewHH:MM:SS time,其餘按鈕也會正常工作。

問題:

如果活動被切換到後臺然後如何更新TextView的時間?我已爲此任務提供服務,但是,如何從服務向UI返回

請問,你能告訴我怎麼做或任何其他可能的解決方案嗎?

回答

7

您可以創建CustomBroadcast

下面是示例代碼。 試試這個,它會運行

YourService.Java

public static final String BROADCAST_ACTION = "com.example.tracking.updateprogress"; 
intent = new Intent(BROADCAST_ACTION); 
sendBroadcast(intent); 

YourActivity.Java

registerReceiver(broadcastReceiver, new IntentFilter(YourService.BROADCAST_ACTION)); 

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
       //Update Your UI here.. 
       updateUI();  
     } 
} 

您也可以通過在Intent數據。

+0

如何在服務中使用停止和暫停? – Harshid 2013-04-26 06:10:23

+1

啓動,恢復,停止工作proper.how暫停服務? – Harshid 2013-04-26 06:11:11

+1

開始,**恢復**,停止正常工作。如何**恢復**服務?手段? – 2013-04-26 06:13:02

0

如果您在活動內創建了一個簡單的new Thread(new Runnable() {...}),您可以使用runOnUiThread(new Runnable() { // your UI modify method }) Acitvity方法運行UI操作。如果活動轉到後臺,線程仍在運行。