我有一个每 1 秒增加 1 的计数器,在 TextView 中显示其当前值。
一切正常,直到 Activity 被销毁然后重新创建。在这些情况下,计数器重置为 0。
我读过我必须将计数器的代码放在自定义Service中,以便在后台执行。然后,我应该将我的 Activity(包含 TextView)与BroadcastServicer通信。
我已经遵循了一些关于 BroadcastReceivers 的教程,但我仍然不知道如何解决这个问题。
您能否向我展示将 BroadCastReceiver 与服务通信以更新 Activity 中的 TextView 的正确方法?
到目前为止,这是我的 Activity 代码:
public class CounterActivity extends Activity{
private long startTime = 0;
private Handler h = new Handler();
private TextView tvCounter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_task_list);
tvCounter = (TextView)findViewById(R.id.tvCounter);
Runnable run = new Runnable() {
@Override
public void run() {
long millis = System.currentTimeMillis() - startTime;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
tvCounter.setText(String.format("%d:%02d", minutes, seconds));
h.postDelayed(this, 500);
}
};
startTime = System.currentTimeMillis();
h.postDelayed(run, 0);
}
}
提前致谢!