我的活动已经绑定到该服务。 当我启动活动时,它会绑定到服务并从服务中的变量中获取值。所以我可以在我的活动中显示价值。
现在我想永久地读取服务中变量的值。不仅仅是在调用我的活动的创建时。 我怎样才能做到这一点? 这是正确的方法吗?
答案 0 :(得分:1)
有几种方法可以实现这一目标。一种相对简单的方法是使用定期触发的Handler
public class MyActivity extends Activity {
private static final int UPDATE_RATE_IN_MS = 500;
private static final int MSG_UPDATE = 0;
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
doUpdate();
mHandler.sendEmptyMessageDelayed(MSG_UPDATE, UPDATE_RATE_IN_MS);
}
};
}
@Override
protected void onStart() {
super.onStart();
mHandler.sendEmptyMessageDelayed(MSG_UPDATE, UPDATE_RATE_IN_MS);
}
@Override
protected void onStop() {
super.onStop();
mHandler.removeMessages(MSG_UPDATE);
}
private void doUpdate() {
// do whatever you need here.
}
}
您可以在此示例中将值的更新放在doUpdate()
中。