搜索

首页  >  问答  >  正文

Android耗时操作怎么保证100%完成

Android开发新手在开发过程中遇到的一点疑惑,希望大神们帮忙引一下路。
比方说,我App在首次安装的时候需要创建一个sqlite数据库
我的处理方法是在launcher启动页的时候执行这个创建方法
但是我觉得创建sqlite数据库是个耗时操作,我需要把它放在子线程里面执行
那么问题来了:
如果一旦出现在子线程里创建数据库失败的情况,我如何保证后面的方法能够顺利执行呢?
当我创建数据库的时候,launcher可能已经跳转到mainActivity了,或者已经调到其他页面了,甚至已经准备执行写数据进数据库的操作了,但是这个时候我可以判断数据库是否存在,如果不存在我可以重新创建,但是我不可能在所有需要进行数据库操作的地方都进行重新创建数据库的操作
那么,我如何保证子线程里的操作结果100%完成?
而且在launcher里面还有其他几个操作,都需要在子线程里完成。
求解。

習慣沉默習慣沉默2767 天前604

全部回复(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
  • 取消回复