Android
Real Time
Live-Abfragen für Echtzeitanwendungen in Android Apps
11 min
echtzeitanwendung mit live abfragen einführung live abfragen sind für den einsatz in echtzeitreaktiven anwendungen , gedacht, bei denen die verwendung des traditionellen abfrageparadigmas mit einigen problemen verbunden wäre, wie z b erhöhten antwortzeiten und hohem netzwerk und serververbrauch live abfragen sollten in fällen verwendet werden, in denen sie eine seite kontinuierlich mit frischen daten aus der datenbank aktualisieren müssen, was häufig in, aber nicht beschränkt auf, online spiele, messaging clients und gemeinsame to do listen vorkommt dieser abschnitt erklärt, wie man die live abfrage von back4app in einer android umgebung über back4app verwendet dieses tutorial verwendet eine grundlegende app, die in android studio arctic fox 2020 3 1 patch 1 mit compilesdk 30 compilesdk 30 , minsdk 21 minsdk 21 und targetsdk 30 targetsdk 30 zu jeder zeit können sie auf das vollständige projekt über unsere github repositories zugreifen kotlin beispiel repository java beispiel repository ziel hier ist eine vorschau dessen, was wir erreichen werden voraussetzungen um dieses tutorial abzuschließen, benötigen wir android studio eine app, die auf back4app erstellt wurde hinweis befolgen sie das tutorial für neue parse apps , um zu lernen, wie man eine parse app auf back4app erstellt eine android app, die mit back4app verbunden ist hinweis befolgen sie das tutorial zur installation des parse sdk um ein android studio projekt zu erstellen, das mit back4app verbunden ist ein gerät (oder virtuelles gerät ) mit android 4 1 (jelly bean) oder neuer 1 live query aktivieren bevor sie mit dem programmieren beginnen, ist es notwendig, eine klasse in ihrer datenbank zu haben, um live query zu aktivieren um dies zu tun, finden sie einfach ihre app auf der back4app website , und klicken sie auf dashboard dashboard > eine klasse erstellen eine klasse erstellen , wie hier gezeigt um die live abfragefunktion zu aktivieren, melden sie sich bei ihrem konto an unter back4app website , suchen sie ihre app und klicken sie auf servereinstellungen servereinstellungen , suchen sie dann den block „server url und live abfrage“ und klicken sie auf einstellungen einstellungen dann gelangen sie zu einer seite wie der untenstehenden auf dieser seite müssen sie die aktivieren sie ihre back4app subdomain aktivieren sie ihre back4app subdomain option, die aktivieren sie live abfragen aktivieren sie live abfragen option und alle klassen, für die sie live abfragen aktivieren möchten, wie unten gezeigt es ist notwendig, webhosting zu aktivieren, um live abfragen zu verwenden, da ihre domain als der live server fungiert hinweis um mehr über webhosting zu erfahren, schauen sie sich das back4app webhosting tutorial 2 richten sie den livequery client ein offizielles github von parse server haben eine implementierung des live query clients für android https //github com/parse community/parselivequery android es ist notwendig, den offiziellen live query client zu implementieren, der gut funktioniert fügen sie dazu die folgenden zeilen in ihre app app/build gradle app/build gradle datei im abschnitt abhängigkeiten hinzu und synchronisieren sie ihr projekt app/build gradle 1 dependencies { 2 3 // don't forget to change the line below with the latest version of parse sdk for android 4 implementation "com github parse community parse sdk android\ parse 1 26 0" 5 implementation 'com github parse community\ parselivequery android 1 2 2' 6 7 } in diesem projekt werden wir auch eine klasse namens message message , die unsere nachrichten enthält 3 abonnieren sie ihre abfrage um live queries zu verwenden, erstellen sie zunächst einen livequeryclient livequeryclient der die websocket verbindungen für sie verwaltet dazu müssen sie die anwendungs id, den javascript schlüssel und auch eine server url von live query angeben, die sie im ersten schritt eingerichtet haben 1 parse initialize(new parse configuration builder(this) 2 applicationid(getstring(r string back4app app id)) 3 clientkey(getstring(r string back4app client key)) 4 server(getstring(r string back4app server url)) 5 build());1 parse initialize(parse configuration builder(this) 2 applicationid(getstring(r string back4app app id)) 3 clientkey(getstring(r string back4app client key)) 4 server(getstring(r string back4app server url)) 5 build()) der code zur initialisierung von livequeryclient livequeryclient ist wie folgt 1 parselivequeryclient parselivequeryclient = parselivequeryclient factory getclient();1 val parselivequeryclient = parselivequeryclient factory getclient() wir haben einen recyclerview adapter namens messageadapter messageadapter die funktionen von messageadapter werden ausgelöst, wenn ein objekt hinzugefügt, gelöscht oder aktualisiert wird hier sind unsere messageadapter messageadapter funktionen 1 public void additem(parseobject t) { 2 this list add(t); 3 notifyiteminserted(list size() 1); 4 } 5 6 public void removeitem(parseobject object) { 7 for (int i = 0; i < list size(); i++) { 8 if (list get(i) getobjectid() equals(object getobjectid())){ 9 list remove(i); 10 notifyitemremoved(i); 11 notifyitemrangechanged(i, list size()); 12 return; 13 } 14 } 15 } 16 public void updateitem(parseobject object) { 17 for (int i = 0; i < list size(); i++) { 18 if (list get(i) getobjectid() equals(object getobjectid())){ 19 list set(i,object); 20 notifydatasetchanged(); 21 return; 22 } 23 } 24 }1 fun additem(t parseobject?) { 2 list!! add(t!!) 3 notifydatasetchanged() 4 } 5 6 fun removeitem(`object` parseobject) { 7 for (i in list!! indices) { 8 if (list!!\[i] objectid == `object` objectid) { 9 list!! removeat(i) 10 notifyitemremoved(i) 11 notifyitemrangechanged(i, list!! size) 12 return 13 } 14 } 15 } 16 17 fun updateitem(`object` parseobject) { 18 for (i in list!! indices) { 19 if (list!!\[i] objectid == `object` objectid) { 20 list!!\[i] = `object` 21 notifydatasetchanged() 22 return 23 } 24 } 25 } dann sollten sie eine parsequery parsequery für den typ des objekts erstellen, für den sie sich anmelden möchten eine subscription ist ein ereignis emitter, der ereignisse auslöst, wenn änderungen an einem objekt vorgenommen werden, das ihre abfrage erfüllt in diesem beispiel werden sie eine grundlegende abfrage durchführen und sich für alle änderungen an den message message objekten anmelden siehe mehr über abfragen und abonnements unter parse offizielle abfragen dokumentation 1 parsequery\<parseobject> parsequery = new parsequery<>("message"); 2 subscriptionhandling = parselivequeryclient subscribe(parsequery); 3 subscriptionhandling handlesubscribe(q > { 4 subscriptionhandling handleevent(subscriptionhandling event create, (query, object) > { 5 mainactivity this runonuithread(() > { 6 messagesadapter additem(object); 7 }); 8 }); 9 subscriptionhandling handleevent(subscriptionhandling event delete, (query, object) > { 10 mainactivity this runonuithread(() > { 11 messagesadapter removeitem(object); 12 }); 13 }); 14 subscriptionhandling handleevent(subscriptionhandling event update, (query, object) > { 15 mainactivity this runonuithread(() > { 16 messagesadapter updateitem(object); 17 }); 18 }); 19 });1 val parsequery = parsequery\<parseobject>("message") 2 subscriptionhandling = parselivequeryclient!! subscribe(parsequery) 3 subscriptionhandling!! handlesubscribe { subscriptionhandling!! handleevent(subscriptionhandling event create 4 ) { parsequery\<parseobject?>?, `object` parseobject? > 5 runonuithread { messagesadapter!! additem(`object`) } 6 } 7 subscriptionhandling!! handleevent(subscriptionhandling event delete 8 ) { parsequery\<parseobject?>?, `object` parseobject? > 9 runonuithread { messagesadapter!! removeitem(`object`!!) } 10 } 11 subscriptionhandling!! handleevent(subscriptionhandling event update 12 ) { parsequery\<parseobject?>?, `object` parseobject? > 13 runonuithread { messagesadapter!! updateitem(`object`!!) } 14 } 15 } hinweis wir lösen all diese ereignisse in der app aus außerdem können sie diese erstellungs , aktualisierungs und löschereignisse von back4app (aus der tabelle oder der javascript konsole) auslösen es ist erledigt! an diesem punkt haben sie das wissen, wie man live queries verwendet, um reaktive anwendungen in einer android umgebung in echtzeit zu erstellen, und auch, wie man live query mit back4app einrichtet jetzt können sie damit beginnen, es in ihrer eigenen app zu implementieren sie sind jetzt bereit, die kernfunktionen von parse server https //www back4app com/product/parse server und back4app add ons https //www back4app com/product/addons zu erkunden