我开发了一个包含start
,pause
,resume
和finish
按钮的应用。
使用线程和处理程序在活动中正常工作。
如果用户点击start button
线程已启动并显示textviewHH:MM:SS time
,其余按钮也能正常工作。
问题:
如果活动进入后台,那么如何更新textview时间?我为此任务提供了服务但是,如何从服务到UI的响应?
拜托,您能告诉我如何做到这一点或任何其他可能的解决方案吗?
答案 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操作。如果活动转到后台,则线程仍在运行。