我开发了一个带有start
、pause
和按钮resume
的应用程序。finish
它使用线程和处理程序在活动中正常工作。
如果用户单击start button
线程启动并显示textviewHH:MM:SS time
,其余按钮也可以正常工作。
问题:
如果活动进入后台,那么如何更新 textview 时间?我已经为这项任务提供了服务,但是,我如何将服务的响应传递给 UI?
拜托,你能给我一些关于如何做或任何其他可能的解决方案的想法吗?
我开发了一个带有start
、pause
和按钮resume
的应用程序。finish
它使用线程和处理程序在活动中正常工作。
如果用户单击start button
线程启动并显示textviewHH:MM:SS time
,其余按钮也可以正常工作。
问题:
如果活动进入后台,那么如何更新 textview 时间?我已经为这项任务提供了服务,但是,我如何将服务的响应传递给 UI?
拜托,你能给我一些关于如何做或任何其他可能的解决方案的想法吗?
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
.
如果您new Thread(new Runnable() {...})
在 Activity 中创建一个简单的,您可以使用runOnUiThread(new Runnable() { // your UI modify method })
Acitvity 方法运行 UI 操作。如果 Activity 进入后台,则 Thread 仍在运行。