我是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")。
其次,更重要的是,如果启动第二个子线程仅以第一个子线程结束/加入主线程为条件,则似乎违背了多线程的最初目的。
在允许用户退出活动之前,是否还检查并行运行的所有子线程是否已成功完成(通过启用按钮让他们这样做?)。