Java 如何将@override方法从活动重写到另一个类中
嗨,假设我有一个活动Java 如何将@override方法从活动重写到另一个类中,java,android,Java,Android,嗨,假设我有一个活动 class AcitivityA { @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Do something } } 我有一个类名 class myClass { private Activity current_
class AcitivityA {
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Do something
}
}
我有一个类名
class myClass {
private Activity current_activity;
myClass(Activity activity) {
current_activity = activity;
}
}
所以我的问题是,有没有一种方法可以覆盖OnConfiguration Changed并将其放入我的类myClass中
所以我的目标是检测方向是否改变
但是我希望它位于类myClass中,为它创建一个侦听器
public interface OnChange() {
void changed();
}
public class ListenerHolder {
public static OnChange onChange = new OnChange( ... );
}
MyClass mClass = new MyClass();
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
ListenerHolder.onChange.changed();
}
请注意,接口应该在其他地方是静态的,而不是自己的活动,否则它可能会被活动破坏
但有一些更好的方法可以解决这个问题。广播接收器、深度链接、扩展、LiveData(Livecycle感知)、RxJava主题
在一个不用于此目的的类之外钩住视图事件是一种糟糕的设计模式
看一看哪种使用Mvvm模式(包括ViewModels和LiveData)来应对配置更改
如果你是Android新手,我强烈建议你看看你的应用程序是否设计得当。您也可以开始使用Kotlin,因为它将是android未来的维护语言。使用“AcitivityA”扩展“myClass”,让您的
ActivityA
实例从OnConfiguration Changed()在您的myClass
实例上调用一个方法
活动a中的方法。有没有一种方法不需要添加界面sir?因为我的活动是动态的,因为它将是服务中类的当前活动。是的,请使用适当的设计模式。AAC/MVVM设计为具有生命周期意识(并且在配置更改后仍然有效)