【发布时间】:2021-02-12 06:58:13
【问题描述】:
我试图通过在 Activity 中创建一个接口并在该类中实现该接口来跟踪另一个类的事件 (OnActivityResult)。像这样:
OnAuthCompletedListener listener;
public void setOnAuthCompletedListener(OnAuthCompletedListener listener){
this.listener = listener;
}
public interface OnAuthCompletedListener {
void OnAuthCompleted(Auth auth)
}
在我写的另一堂课中
MainActivity activity= new MainActivity();
activity.setOnAuthCompletedListener(auth->{
});
但每当事件发生时,应用程序就会因 NPE 而崩溃。我知道我正在使用与真实活动实例不同的活动实例。我的问题是如何在非活动类中使用该接口?
我也知道使用 RXJava 有一些更好的解决方案,但我不够聪明,无法实现,有人可以帮忙吗?
【问题讨论】:
-
你的“另一个班级”应该得到真正的工作
Activity参考而不是new一个 -
如何实现?
-
好吧,也许引入新方法
public void setActivityForListener(Activity act)或者只是显示你的“另一个类”,写答案会更容易 -
好吧,由于官方原因,我无法显示该类,但它是一个提供者类,没有引用该类中的任何上下文或活动。
-
好吧,没有代码很难猜测哪种分辨率适合您的需要。但我已经发布了一些基本方法作为答案,请查看