活动与单独班级之间的沟通

时间:2016-10-19 00:18:37

标签: android interface listener handler

我有一个活动:

public class MyActivity extends Activity {

    @Override
    protected void onDestroy() {
// TODO: send event to other class
    }
}

和另一个班级:

    public class MyClass{
        MyClass(Context context){
          // I have the context of activity
        }

// This needs to be called by MyActivity in all other instantiates
        void onActivityDestroy(){

        }
    }

MyClass在其他地方实例化,我希望在这些实例化中调用onActivityDestroy。无法访问MyClass实例化的位置。

我正在寻找一种使用接口,监听器,消息......但不是静态字段的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以在应用程序级别维护MyClass个实例列表,然后在OnDestroy活动方法中访问该列表。并执行每个实例的onActivityDestroy()版本。

您应该在Application类中维护实例列表,每当创建MyClass实例时,您将该实例推送到Application Class

维护的列表中
// this is to push the MyClass instance.
Context.getApplication().getMyClassInstanceList().add(new MyClass());

public class MyActivity extends Activity {

  @Override 
  protected void onDestroy() { 
    List<Myclass> myClassObjects = Context.getApplication.getMyClassInstaceList();

    for(Myclass myclass : myClassObjects)
     {
          myclass.onActivityDestroy();
     }
   }
 }