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

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

阅读 4.7k
4 个回答

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

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

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

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

可以在LauncherActivity里面开线程去初始化,线程初始化完成之后,通过Handler发消息给LauncherActivity,然后再跳转MainActivity。
如果担心时间较长,怕用户认为是APP卡住了,可以在LauncherActivity上加个进度条,就像 @月之领主LM 说的那样。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题