Hier ist mein asynctask
-Teil, wo ich einen Pin an einem Ort anlege, der von einem XML-Code analysiert wurde. Dies ist in Ordnung für einen kleinen Standortdatensatz, dauert jedoch lange, wenn der Standortdatensatz groß ist.
Ich habe gelernt, getLatitudeSpan
und getLongitudeSpan
zu verwenden, um dieses Problem loszuwerden, aber ich weiß nicht genau, wo und wie ich es in meiner asynchronen Aufgabe verwende. Irgendwelche Vorschläge?
Geben Sie bitte genaue Datengröße an, wo die benötigte Zeit lang ist. Versuchen Sie auch, den Code zu profilieren, um die für jeden Codeblock benötigte Zeit zu sehen.
Aber wenn man sich den Code ansieht, würde das Durchlaufen all dieser Variablen einen signifikanten Effekt auf die Zeit haben, wenn die Daten, auf denen gearbeitet wird, erhöht sind,
Versuchen Sie, die Schleifen zu vereinfachen / zu kombinieren,
z. B. diese Schleife
%Vor%und dieses
%Vor%kann nicht kombiniert werden?
auch diese Schleife
%Vor%und das
%Vor%kann auch kombiniert werden,
Ich denke, bei Problemen geht es nicht um Überlagerungen. Du erhältst alle Gegenstände mit dem Sax Parser. Sie versuchen alle Elemente zu erhalten und fügen sie dann zur Karte hinzu. Wenn Sie Ihren Code ändern, während Sie ein einzelnes Elementupdate zum Überlagern und Füllen erhalten, kann dies die Ausführung beschleunigen. Wenn Sie immer noch unter dem gleichen Problem leiden, versuchen Sie, Elemente mit einem separaten Thread oder einem Canvas-Objekt der Überlagerung hinzuzufügen (durch Projektion des Geo-Punktes).
Sie verwenden einen Sax Parser , der ziemlich zeitraubend ist. Verwenden Sie einen Objektmodellrepräsentanten wie einen json, der leicht geparst werden kann und daher auf einer Karte geplottet werden kann.
// Wenige Vorschläge, die möglicherweise das Zeitproblem verringern, mit dem Sie konfrontiert sind.
Tags und Links java android android-maps