Activity中的Java类调用方法

标签 java android interface delegates

我想了解如何在另一个类中的流程完成后调用我的 Activity 中的方法?

请看我的示例。在 MyActivity 中,我想在 MyClass 中调用一个名为 doSomething 的方法。当 doSomething 完成时,我希望 MyClass 在 Activity 中(通知?、接口(interface)?、委托(delegate)?、可观察?、插入“我不知道这里”)我完成的方法。

enter image description here

我看过接口(interface)。但我不明白这一点。 (你基本上 promise 实现一个方法?但是......为什么?你可以只实现没有接口(interface)的方法。)

我在 MyActivity 上尝试了 Observable,但我无法扩展多个类...

委托(delegate)看起来像接口(interface)。

我不知道。我仍然在学习,希望有人能帮助我理解。我看过的大部分教程一般都是互相复制粘贴的。我承认我未能理解 Java 的一个基本功能。

最佳答案

为此,您必须提供一种方法来对您的其他类执行回调。喜欢:

interface CompletionCallback {
  void finish();
}

然后:

class MyActivity ... implements CompletionCallback {
...

  void doTheThing() {
    MyClass someMyClass = new MyClass();
    someMyClass.doSomething(this);
  }

  @Override 
  void finish() { ...

最后:

class MyClass {
  void doSomething(CompletionCallback callback) {
    ....
    callback.finish()

换句话说:

  1. 您创建一个接口(interface),其中包含您需要回调的方法(使用接口(interface)允许您抽象应该回调的类的具体实现)
  2. 现在您只需将实现该接口(interface)的类的对象传递给应该回调您的代码

关于Activity中的Java类调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40410370/

相关文章:

java - 捕获安卓屏幕并以编程方式创建视频

android - 使用 proguard 在 Android 上使 ORMLite 崩溃

c# - 如何解决泛型错误 CS0311?

java - 什么是NullPointerException,我该如何解决?

java - Ignite 服务器节点因 ConcurrentMap 中的大量累积而 OOM,TcpCommunicationSpi#recoveryDescs

java - 从c到java,对象

java - 解决此重构问题的不同方法 - Java Switch Case Alternative?

Android - 具有 HTML 的字符串数组值

oop - 在 OOP 中,接口(interface)在不同上下文中的不同含义是什么?

java - 如何在返回接口(interface)引用时知道将使用哪个实现