0

我有一个已经绑定到服务的活动。当我启动活动时,它会绑定到服务并从服务内的变量中获取值。所以我可以在我的活动中显示价值。

现在我想永久读取服务中变量的值。不仅在我的活动的 onCreate 被调用时。我怎样才能做到这一点?什么是正确的方法?

4

1 回答 1

1

有几种方法可以做到这一点。一种相对简单的方法是使用Handler定期触发自身的 a

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()在此示例中放入值的更新。

于 2012-08-13T17:38:01.050 回答