| |||||||
Das Thema "Viele "lange" Requests..." befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Fortgeschrittenes Mitglied Modell: HTC Desire HD Registriert seit: 09.08.2010
Beiträge: 345
Abgegebene Danke: 11
Erhielt 40 Danke für 38 Beiträge
| Wie ich in einem vorherigen Post bereits erwähnte bau ich eine Telefonkontaktsuche. Dazu habe ich einem EditText einen TextWatcher gegeben, welcher sich immer meldet wenn der Benutzer den Text in dem EditText verändert hat. Diesen String möchte ich dann zum suchen eines Kontaktes verwenden. Nun schreibt der Benutzer aber meist schneller als die Datenbank durchsucht werden kann. d.h.: Benutzer drückt: U Datenbank sucht... Benutzer drückt: N Datenbank sucht immer noch "U" Datenbank soll nun nach "UN" suchen Wie setz ich das geschickt um? Bisher hatte ich es in anderen Apps immer so gelößt, dass ich solange der erste Suchvorgang noch nicht beendet ist, keinen weiteren Starte. Das finde ich aber nicht sehr schön. Gibt es da keine bessere Lösung für?
__________________ Tutorials: - Getting Started with the Android NDK(en) - Zuverlässigkeit und Flußkontrolle bei der Datenübertragung in Multiplayer Games (de) - ExpandableListView mit X Leveln(de) |
| | |
| | #2 (permalink) |
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
|
Du könntest die Suche erst dann anschmeißen, wenn nach dem letzten Buchstaben etwas Zeit vergangen ist.
__________________ Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon. Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten. Tipp: Zum "Danke" sagen gibt es einen Button. ![]() |
| | |
| | #3 (permalink) |
| Fortgeschrittenes Mitglied Modell: HTC Desire HD Registriert seit: 09.08.2010
Beiträge: 345
Abgegebene Danke: 11
Erhielt 40 Danke für 38 Beiträge
|
An wie lange denkst du da? 1 Sekunde? Ist fast zu lang! Wie machen das andere Apps? Weniger als 1 Sekunde braucht man aber auch nicht zu nehmen, da das durchaus mal ne Sekunde dauern kann.
__________________ Tutorials: - Getting Started with the Android NDK(en) - Zuverlässigkeit und Flußkontrolle bei der Datenübertragung in Multiplayer Games (de) - ExpandableListView mit X Leveln(de) |
| | |
| | #4 (permalink) |
| Fortgeschrittenes Mitglied Modell: Samsung Galaxy S und Galaxy 5 Registriert seit: 31.03.2011
Beiträge: 480
Abgegebene Danke: 35
Erhielt 89 Danke für 73 Beiträge
|
Und wie isses, das Suchergebnis nur dann anzeigen zu lassen (bzw. weitere Ergebnisse), solange kein weitere Buchstabe bei der Suche hinzugekommen ist?
|
| | |
| | #5 (permalink) |
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
|
Ich hätte eher an ~500msec gedacht. Das mit der mehrfachen Suche würde ich durch Verwerfen des Ergebnis der alten lösen (wenn die DB da mitmacht). Jede Tasteneingabe wirft dann einen Thread wie folgt an: Code: public void run() {
mCurrentSearch = this;
Thread.sleep( 500 );
if( this!=mCurrentSearch ) return;
//suche ausführen
if( this!=mCurrentSearch ) return;
//treffer anzeigen
}
__________________ Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon. Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten. Tipp: Zum "Danke" sagen gibt es einen Button. ![]() |
| | |
| | #6 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
naja ich würde einfach vorm anzeigen des results dann abchecken, ob das aktuelle suchwort, das gleiche ist, wie das von dem ergebnis. wenn sich das wort geändert hat, verwerfen. wenn nicht, anzeigen. einen bereits gestarteten task kannst halt nur sehr aufwändig wieder abbrechen. hab obiges verhalten in einer app integriert und das funktioniert sehr gut
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #7 (permalink) |
| Android-Hilfe.de Mitglied Modell: Nexus S Registriert seit: 21.11.2010
Beiträge: 162
Abgegebene Danke: 9
Erhielt 15 Danke für 15 Beiträge
|
Hallo, in welchen Feldern der Telefonkontaktsuche suchst Du und um wieviel Kontakte geht es? Was würdest Du von der Idee halten, alle Kontakte bzw. relevanten Felder beim Start der Activity zu laden und in eine z.B. List<KontakteObj> zu speichern, so dass Du diese Liste durchsuchen kannst? Damit sollten Dir Suchergebnisse nach Tastendruck schnell genug zur Verfügung stehen?! Gruß Bobert |
| | |
| | #8 (permalink) |
| Fortgeschrittenes Mitglied Modell: HTC Desire HD Registriert seit: 09.08.2010
Beiträge: 345
Abgegebene Danke: 11
Erhielt 40 Danke für 38 Beiträge
|
@Bobert: Genau das mach ich gerade, das schien mir das vernünftigste. Danke trotzdem
__________________ Tutorials: - Getting Started with the Android NDK(en) - Zuverlässigkeit und Flußkontrolle bei der Datenübertragung in Multiplayer Games (de) - ExpandableListView mit X Leveln(de) |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Such ein "???" für lange Akkuleistung! Bitte um hilfe. | Marv20 | Root / Hacking / Modding für Samsung Galaxy S | 11 | 27.12.2011 16:56 |
| Viele "Internet Apps" funktionieren im mobilen Netz nicht! | Desire:D | APNs und Internetzugangspunkte | 8 | 07.06.2011 16:30 |
| T-Mobile Pulse "zu viele Versuche"? Brauche Hilfe! | pulse67 | T-Mobile Pulse Forum | 21 | 24.11.2010 23:05 |
| Samsung "Chefkoch Widget" fordert viele Rechte | marty | Samsung Galaxy S (I9000) Forum | 10 | 24.08.2010 13:12 |