搜尋

首頁  >  問答  >  主體

Android耗時操作怎麼保證100%完成

Android開發新手在開發過程中遇到的一點疑惑,希望大神們幫忙引一下路。
比方說,我App在首次安裝的時候需要創建一個sqlite資料庫
我的處理方法是在launcher啟動頁的時候執行這個創建方法
但是我覺得創建sqlite資料庫是個耗時操作,我需要把它放在子執行緒裡面執行
那麼問題來了:
如果一旦出現在子執行緒裡創建資料庫失敗的情況,我如何保證後面的方法能夠順利執行呢?
當我建立資料庫的時候,launcher可能已經跳到mainActivity了,或者已經調到其他頁面了,甚至已經準備執行寫資料進資料庫的操作了,但是這個時候我可以判斷資料庫是否存在,如果不存在我可以重新創建,但是我不可能在所有需要進行資料庫操作的地方都進行重新創建資料庫的操作
那麼,我如何保證子執行緒裡的操作結果100%完成?
而且在launcher裡面還有其他幾個操作,都需要在子執行緒完成。
求解。

習慣沉默習慣沉默2735 天前588

全部回覆(3)我來回復

  • 天蓬老师

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

    1.封裝一下瑟
    2.比如說封裝一個DBUtils層。

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

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-05-24 11:40:12

    建議採用強阻塞的邏輯,彈出不可取消的loading框,以確保執行結果。

    回覆
    0
  • 天蓬老师

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

    建議參考手機QQ第一次啟動的時候,有個資料初始化之類的進度條。

    回覆
    0
  • 取消回覆