java - 使用无限循环检查变量变化

标签 java android

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

最佳答案

您应该使用来自服务的广播来发送变量中的更改。首先在您的主 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 过滤器。您可以在 Activity 的 onCreate() 中执行此操作。

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

然后在您的服务中您必须发送一个广播。如果你想从服务发送一些数据到 Activity ,那么你必须用下面的代码替换上面的代码

Intent intent = new Intent("FROM_SERVICE");
intent.putExtra("Variable", "change");
sendBroadcast(intent);

关于java - 使用无限循环检查变量变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20937100/

相关文章:

java - 通过字节数组问题进行文件比较

java - 当应用程序进入后台时,Android 绑定(bind)程序事务失败

java - 将二进制补码中的带符号二进制字符串转换为 int?

Android - 更改自定义微调器的 DropDownItem 样式

java - 需要 Firebase 每天仅返回一次日期,而不是在每条消息后返回日期

java - 如何将 Parcelable 数组列表添加到部分回收器 View 适配器

java - 如何制作在 java 和 javascript 中都可以使用的消息?

java - 有序(自然插入顺序)和线程安全的 Java Map

java - Android SeekBar 更新音量按钮点击

java - 为什么我的BGR2GRAY Mat在基本阈值函数中返回蓝色? [OPENCV]