我想调用从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();
Application
与Activity
不同。它不能神奇地成为活动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的范围成分。:)