2

我开发了一个带有startpause和按钮resume的应用程序。finish

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

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

问题:

如果活动进入后台,那么如何更新 textview 时间?我已经为这项任务提供了服务,但是,我如何将服务的响应传递给 UI?

拜托,你能给我一些关于如何做或任何其他可能的解决方案的想法吗?

4

2 回答 2

7

You can create CustomBroadcast

Here is sample code. Try this, it will work..

In YourService.Java

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

In 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();      
        }
}

You can also pass data in Intent.

于 2013-04-26T04:50:46.000 回答
0

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

于 2013-04-26T04:41:28.123 回答