听一个变量,如果变化触发一些代码

Listen to a variable, if changes trigger some code

我想使用 ActivityManager.RunningTaskInfo 检查 运行 个应用,如果 com.example.myapp 包包含在列表中,则启动一些服务:

List<String> lst = new ArrayList<String>();

ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
         List<RunningTaskInfo> recentTasks = activityManager
                .getRunningTasks(Integer.MAX_VALUE);

         for(RunningTaskInfo item : recentTasks){

             lst.add(item.baseActivity.getPackageName());
         }      

我的问题是如何收听 lst List<String> 并在此 List<String> 更改之后调用一些方法或启动一些服务。

提前致谢。

您可以创建自己的列表实现并覆盖每个方法。例如,您的 class 可以继承 ArrayList。在每个修改列表的方法中,您调用您的侦听器:

public voolean add(T value) {
   if(super.add(value)) {
        callListeners()
   }
}