2016-11-03 5 views
1

Ich versuche zu verstehen, wie eine Methode in meiner Aktivität aufgerufen wird, nachdem ein Prozess in einer anderen Klasse abgeschlossen wurde?Aufrufmethode der Java-Klasse in Aktivität

Bitte sehen Sie sich mein illustriertes Beispiel an. In MyActivity möchte ich eine Methode namens DoSomething in MyClass aufrufen. Wenn doSomething abgeschlossen ist, möchte ich MyClass (Benachrichtigen ?, Schnittstelle ?, Delegieren ?, Observable ?, Einfügen "Ich weiß es nicht hier") meine fertige Methode zurück in Aktivität.

enter image description here

Ich habe an Schnittstellen aussieht. Aber ich verstehe den Punkt nicht. (Sie versprechen, im Grunde ein Verfahren zu implementieren? Aber ... warum? Können Sie implementieren nur die Methode ohne die Schnittstelle.)

Ich versuchte beobachtbare auf MyActivity, aber ich kann nicht mehrere Klassen erweitern ...

Delegierte sehen wie Schnittstellen aus.

Ich weiß es nicht. Ich lerne immer noch sehr viel und hoffe, dass mir jemand helfen wird zu verstehen. Die meisten Tutorials, die ich gesehen habe, werden im Allgemeinen kopiert und eingefügt. Ich erkenne, dass ich eine Grundfunktion von Java nicht verstehe.

+1

wie ein Teilnehmer-Verlag Muster Sehen Aufgabe. Sie können sich [diese Antwort] anschauen (http://stackoverflow.com/questions/34710809/is-that-a-right-way-of-using-interface-callback/34711257#34711257). – Onik

Antwort

1

Um das zu tun, müssen Sie eine Möglichkeit bieten, eine Rückruf zu Ihrer anderen Klasse zu tun. Wie:

interface CompletionCallback { 
    void finish(); 
} 

Dann:

class MyActivity ... implements CompletionCallback { 
... 

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

    @Override 
    void finish() { ... 

Und schließlich:

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

Mit anderen Worten:

  1. Sie erstellen eine Schnittstelle, die die Methode enthält (n) muss Rückruf (mit einer Schnittstelle können Sie abstrakt die konkrete Umsetzung der Klasse, die
  2. Jetzt übergeben Sie einfach ein Objekt einer Klasse zurückgerufen) werden soll, die die Schnittstelle zu diesem Code implementiert, dass Sie sollten
  3. Rückruf
+0

OMG danke! Wie heißt dieses Muster? Kann dieses Muster zwischen Aktivitäten angewendet werden? Oder ist es am besten, Intents zu verwenden? –

+0

Nun, "Callback" ;-) aber das wäre mit "mehr" Sachen (wie http://www.javaworld.com/article/2077462/learn-java/java-tip-10--implement-callback- routines-in-java.html) ... in diesem Sinne; Ich bin mir nicht einmal sicher, ob es einen bestimmten Namen dafür gibt. Da es wirklich sehr einfach ist - wenn ein Objekt ein anderes Objekt aufrufen möchte, benötigt es A) eine Referenz zu diesem Objekt und B) eine Methode, die aufgerufen werden soll. Mein persönlicher Tipp: Tritt von Android zurück. Durchsuchen Sie das Basis-Java-Schulungsmaterial ** für einige Zeit. Es macht keinen Sinn, Android zu lernen, wenn Sie keine solide Grundlage in Java haben. – GhostCat

+0

Vielen Dank! –

Verwandte Themen