如何更新服务类中更新的textview文本

时间:2013-04-26 04:34:29

标签: android android-layout service background

我开发了一个包含startpauseresumefinish按钮的应用。

使用线程和处理程序在活动中正常工作。

如果用户点击start button线程已启动并显示textviewHH:MM:SS time,其余按钮也能正常工作。

问题:

如果活动进入后台,那么如何更新textview时间?我为此任务提供了服务但是,如何从服务到UI的响应?

拜托,您能告诉我如何做到这一点或任何其他可能的解决方案吗?

2 个答案:

答案 0 :(得分: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

中传递数据

答案 1 :(得分:0)

如果在Activity中创建一个简单的new Thread(new Runnable() {...}),则可以使用runOnUiThread(new Runnable() { // your UI modify method }) Acitvity方法运行UI操作。如果活动转到后台,则线程仍在运行。