1. Die allgemeinen Aktualisierungsinformationen und die Übertragung auf verschiedene Teile, hier ist eine hohe Kohäsion
Student student_xuxiaodong = new Student_xuxiaodong (); Lehrer LehrerA = neuer Lehrer (student_xuxiaodong); Log.i ("CallBack", "AA starten ..."); TeacherA.askQuestion (); Student mStudent_XuChi = new Student_XuChi (); Lehrer LehrerB = neuer Lehrer (mStudent_XuChi); Log.i ("CallBack", "BB starten ..."); TeacherB.askQuestion (); Student mStudent_XuRong = new Student_XuRong (); Lehrer LehrerC = neuer Lehrer (mStudent_XuRong); Log.i ("CallBack", "CC starten ...."); TeacherC.askQuestion ();
2. Entlasten Sie die Lotuswurzel
// Schüler teilt der Lehrerinformationsklasse mit Paket com.example.myapplication; öffentliche Schnittstelle Student { public void studentTellTeacherInfo (Rückruf-Rückruf); }}
// Der Lehrer erhält Schülerinformationen Paket com.example.myapplication; import android.util.Log; public class Lehrer implementiert Callback { privater Student Student; öffentlicher Lehrer (Schüler Schüler) { this.student = student; }} @Override public void answerTeacherTime (String name, String work_time) {// Wie lange muss der Lehrer nur antworten? Log.i ("CallBack", "姓名 :" + Name); Log.i ("CallBack", "Verstanden, die Zeit, die Sie mit Hausaufgaben verbracht haben" + work_time); }} public void askQuestion () { student.studentTellTeacherInfo (this); }} }}
// Student Student_XuChi
Paket com.example.myapplication; import android.util.Log; öffentliche Klasse Student_XuChi implementiert Student { @Override public void studentTellTeacherInfo (Rückruf Rückruf) { Versuchen { Thread.sleep (5000); } catch (InterruptedException e) { e.printStackTrace (); }} callback.answerTeacherTime ("Xu_Chi", "5000 秒"); Log.i ("CallBack", "Student_XuChi starten" + callback.hashCode ()); }} }}
// Student Student_XuRong
Paket com.example.myapplication; import android.util.Log; öffentliche Klasse Student_XuChi implementiert Student { @Override public void studentTellTeacherInfo (Rückruf Rückruf) { Versuchen { Thread.sleep (5000); } catch (InterruptedException e) { e.printStackTrace (); }} callback.answerTeacherTime ("Xu_Chi", "5000 秒"); Log.i ("CallBack", "Student_XuChi starten" + callback.hashCode ()); }} }}
// Student Student_xuxiaodong
Paket com.example.myapplication; import android.util.Log; öffentliche Klasse Student_xuxiaodong implementiert Student { @Override public void studentTellTeacherInfo (Rückruf Rückruf) { Versuchen { Thread.sleep (3000); } catch (InterruptedException e) { e.printStackTrace (); }} callback.answerTeacherTime ("xuxiaodong", "3000 秒"); Log.i ("CallBack", "Student_xuxiaodong starten" + callback.hashCode ()); }} // @Override // public void answerTeacherTime (String name, String work_time) { // Versuchen { // Thread.sleep (3000); //} catch (InterruptedException e) { // e.printStackTrace (); //} // Rückrufen. //} }}
//Implementierung
C: \ Users \ admin> adb logcat -s CallBack
--------- Beginn des Systems
--------- Beginn des Hauptvorgangs
01-30 10: 20: 37.768 4494 4494 I CallBack: Start AA ....
01-30 10: 20: 40.770 4494 4494 I CallBack: Name: xuxiaodong
01-30 10: 20: 40.770 4494 4494 I CallBack: Ich verstehe, es dauert 3000 Sekunden, um Ihre Hausaufgaben zu machen
01-30 10: 20: 40.771 4494 4494 I CallBack: Start Student_xuxiaodong 15652383
01-30 10: 20: 40.771 4494 4494 I CallBack: Start BB ....
01-30 10: 20: 45.772 4494 4494 I CallBack: Name: Xu_Chi
01-30 10 : 20: 45.772 4494 4494 I CallBack: Ich sehe, es dauert 5000 Sekunden, um Ihre Hausaufgaben zu machen.
01-30 10: 20: 45.772 4494 4494 I CallBack: Start Student_XuChi 99143020
01-30 10: 20: 45.772 4494 4494 I CallBack: Start CC ....
01-30 10: 20: 53.773 4494 4494 I CallBack: Name: Xu_Chi
01-30 10: 20: 53.773 4494 4494 I CallBack: Ich verstehe, es dauert 8000 Sekunden, um Ihre Hausaufgaben zu machen
01-30 10: 20: 53.773 4494 4494 Ich rufe zurück: starte Student_XuRong 4099893