suchen

Heim  >  Fragen und Antworten  >  Hauptteil

So stellen Sie sicher, dass zeitaufwändige Android-Vorgänge zu 100 % abgeschlossen werden

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.

習慣沉默習慣沉默2767 Tage vor603

Antworte allen(3)Ich werde antworten

  • 天蓬老师

    天蓬老师2017-05-24 11:40:12

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

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

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-05-24 11:40:12

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

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-05-24 11:40:12

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

    Antwort
    0
  • StornierenAntwort