永久从活动中的绑定服务获取变量值

时间:2012-08-13 17:22:24

标签: android variables service bind

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

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

1 个答案:

答案 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()中。