我有一个活动:
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实例化的位置。
我正在寻找一种使用接口,监听器,消息......但不是静态字段的解决方案。
答案 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();
}
}
}