在更改活动之前确保所有子线程都已结束

时间:2016-05-25 15:21:59

标签: android multithreading

我是Android编程的新手,最近学习了多线程。

我已尝试在我的应用中使用多线程,如下所示。目前只有两个子线程执行数据库更新,不会以任何方式影响UI并在后台运行(按预期)

子线程如下。

            //onCreate ...

            Thread t_one = new Thread(new Runnable()
            {public void run() 
            {
            //a line to update database
            }}
                    );
            t_one.start();

    ///the main thread continues executing other
    ///methods before coming to thread t_two

     Thread t_two = new Thread(new Runnable()
    {public void run() 
    {       
    //another line to update database
    }
    }
            );
    t_two.start();

该应用程序工作正常,但两个孩子的步骤都是非常耗费资源的,我担心孩子们的线程可能无法完成他们的工作'通过点击按钮进入下一个活动,用户退出活动之前的时间。

我在线阅读了join()(例如t_two.join();在t_two.start()之后;在开始下一个子线程之前),但我有两个问题。首先,它在我的情况下不起作用,因为它本身就会产生错误(即"未处理的异常类型InterruptedException")。

其次,更重要的是,如果启动第二个子线程仅以第一个子线程结束/加入主线程为条件,则似乎违背了多线程的最初目的。

在允许用户退出活动之前,是否还检查并行运行的所有子线程是否已成功完成(通过启用按钮让他们这样做?)。

0 个答案:

没有答案