使用无限循环检查变量更改

时间:2014-01-05 18:00:13

标签: java android

我需要检查服务在活动中何时更改变量的值,以便我可以使用新值更新UI。我目前正在使用无限循环在新线程中检查这个,这将使用大量资源/是否有更有效的方法来执行此操作?

1 个答案:

答案 0 :(得分:1)

您应该使用服务中的广播来发送变量中的更改。首先在主Activity中创建一个广播。

BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d("Broadcast","broadcast received");
        String value = intent.getStringExtra("Variable"); // this will get the value 
                                                          // send from Service
    }
};

接下来设置广播侦听的intent过滤器。您可以在活动的onCreate()中执行此操作。

IntentFilter intentFilter = new IntentFilter("FROM_SERVICE");
registerReceiver(broadcastReceiver,intentFilter);

然后在您的服务中,您必须发送广播。如果要将某些数据从Service发送到Activity,则必须用以下

替换上面的代码
Intent intent = new Intent("FROM_SERVICE");
intent.putExtra("Variable", "change");
sendBroadcast(intent);