Activity中的Java类调用方法

时间:2016-11-03 20:08:56

标签: java android interface delegates

我试图了解如何在另一个类完成一个进程后调用我的活动中的方法?

请参阅我举例说明的例子。在MyActivity中,我想在MyClass中调用一个名为doS​​omething的方法。当doSomething完成后,我想要MyClass(通知?,接口?,委托?,可观察?,插入"我不知道这里")我的完成方法回到Activity。

enter image description here

我看过接口。但我不明白这一点。 (你基本上承诺实现一个方法?但是......为什么?你可以在没有接口的情况下实现该方法。)

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

代表看起来像接口。

我不知道。我仍在学习,希望有人能帮助我理解。我见过的大多数教程通常都是相互复制和粘贴的。我知道我没有理解Java的基本功能。

1 个答案:

答案 0 :(得分:1)

为此,您必须提供一种方法来对其他类进行回调。像:

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. 您创建一个包含您需要回调的方法的接口(使用接口可以抽象应该回调的类的具体实现)
  2. 现在,您只需将实现该接口的类的对象传递给应该回拨的代码