2013-04-26 48 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操作。如果活动转到后台,线程仍在运行。