Android 如果更改触发某些代码,请侦听变量

Android 如果更改触发某些代码,请侦听变量,android,listener,Android,Listener,我想使用ActivityManager.RunningTaskInfo检查正在运行的应用程序,如果com.example.myapp包包含在启动某些服务的列表中: List<String> lst = new ArrayList<String>(); ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); List&l

我想使用
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());
         }      
List lst=new ArrayList();
ActivityManager ActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
列出最近的任务=activityManager
.getRunningTasks(整数.MAX_值);
对于(RunningTaskInfo项:recentTasks){
添加(item.baseActivity.getPackageName());
}      
我的问题是如何收听
lst List
,然后在
List
更改后调用一些方法或启动一些服务


提前感谢。

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

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

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

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

谢谢你的回答,但是没有其他方法可以在内容发生变化时得到通知??没有。请检查完整书面课程的答案。@Yoav Sternberg:谢谢你的回答,但对我来说这是一个复杂的话题。我用另一种解决方案来解决我的问题。谢谢你的回答,但是没有其他方法可以在内容发生变化时得到通知??当然没有。请检查完整书面课程的答案。@Yoav Sternberg:谢谢你的回答,但对我来说这是一个复杂的话题。我用另一种解决办法来解决我的问题。