class MyService extends Service {
private Handler mHandler = new Handler();
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
// 更新UI
updateUi();
mHandler.postDelayed(this, 1000); // 1秒钟后再次运行
}
};
@Override
public void onCreate() {
super.onCreate();
mHandler.post(mRunnable); // 在启动服务时运行
}
@Override
public void onDestroy() {
super.onDestroy();
mHandler.removeCallbacks(mRunnable); // 在服务停止时停止计时器
}
private void updateUi() {
// 更新UI的代码放在这里
}
}
这样,你的服务将在另一个线程中更新UI,并且不会在计时器更新时崩溃。