调用Java类活动中实现的接口方法



我想调用从java类中实现的界面方法,其中写了Web API。

流就像从活动A转移到活动B,从活动B中,称为单独的Java类中的API被称为,现在在API的成功结果上,我想调用活动A。

a-> b-> java class-> interface()

我在呼叫接口方法的Java类中引用Activity A的参考方面面临问题。我尝试过易旋码,但没有任何效果。感谢您的时间和帮助

Interface objInterface =  (Interface) context;
objInterface.funInterface();
Interface objInterface =  (Interface) context.getApplicationContext();
objInterface.funInterface();
Interface objInterface =  (Interface) new Activity_A;
objInterface.funInterface();

让我描述您要做的事情,也许您会明白为什么您很难:


Interface objInterface =  (Interface) context;
objInterface.funInterface();

如果此context来自活动B,则这是错误的。活动B和活动A均为Context s,但它们不是相同的Context


Interface objInterface =  (Interface) context.getApplicationContext();
objInterface.funInterface();

ApplicationActivity不同。它不能神奇地成为活动a。


Interface objInterface =  (Interface) new Activity_A;
objInterface.funInterface();

这绝对是一项活动a,并且它具有实现...但是它与已经存在的A不同。


活动B不应该知道活动A。您的单独的Java类不应该知道活动B。这是一个常见的设计原理,称为关注点。我建议专注于将数据从Java类获取到活动B。然后,获取该数据并使用已记录的活动交流方式将其发送回活动A:https://developer.android.com/training/basics/intents/result.html

最后,您可以使用诸如EventBus之类的通信库,但是查看您的代码似乎您可能会误解一个核心概念,因此我不建议您依靠"神奇的数据总线",直到您了解Android的范围成分。:)

最新更新