So stellen Sie sicher, dass zeitaufwändige Android-Vorgänge zu 100 % abgeschlossen werden
習慣沉默
習慣沉默 2017-05-24 11:38:12
0
3
594

Neue Android-Entwickler stoßen während des Entwicklungsprozesses auf einige Zweifel. Ich hoffe, die Experten können mir helfen.
Zum Beispiel muss meine App eine SQLite-Datenbank erstellen, wenn sie zum ersten Mal installiert wird.
Meine Lösung besteht darin, diese Erstellungsmethode auszuführen, wenn der Launcher die Seite startet.
Aber ich denke, das Erstellen einer SQLite-Datenbank ist ein zeitaufwändiger Vorgang. und ich muss es in Execution im Sub-Thread einfügen
Dann kommt die Frage:
Wenn die Erstellung der Datenbank im Sub-Thread fehlschlägt, wie kann ich dann sicherstellen, dass die nachfolgenden Methoden reibungslos ausgeführt werden können?
Wenn ich die Datenbank erstelle, ist der Launcher möglicherweise zu mainActivity gesprungen oder wurde auf andere Seiten übertragen oder ist sogar bereit, Daten in die Datenbank zu schreiben, aber zu diesem Zeitpunkt kann ich feststellen, ob die Datenbank vorhanden ist. Wenn nicht, ja , ich kann es neu erstellen, aber es ist mir unmöglich, die Datenbank an allen Stellen neu zu erstellen, an denen Datenbankoperationen erforderlich sind. Wie kann ich also sicherstellen, dass die Operationsergebnisse im untergeordneten Thread zu 100 % abgeschlossen sind?
Und es gibt mehrere andere Vorgänge im Launcher, die alle in untergeordneten Threads ausgeführt werden müssen.
Lösung.

習慣沉默
習慣沉默

Antworte allen(3)
Peter_Zhu

1.封装一下瑟
2.比如说封装一个DBUtils层。

bool checkDB(){
    return ..;
}
Beans DBUtils.query(callback){
    if(checkDb){
     callback(data);
    }
}
phpcn_u1582

建议采用强阻塞的逻辑,弹出不可取消的loading框,以确保执行结果。

Peter_Zhu

建议参考手机QQ第一次启动的时候,有个数据初始化之类的进度条。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage