当用户启动我的Android应用程序时,我会启动2个线程在后台进行一些处理。thread_1在客户端上进行一些计算,而thread_2从服务器获取一些数据。这一切都很好的工作。没有任何线程修改UI。我有两个后续问题。
new Thread(new Runnable(){
@Override
public void run(){
MyClass.someStaticVariable = doSomeCalculations();
}
}).start();
如何最佳实践地从线程的run()方法中检索数据?我目前使用静态变量,并将相关计算数据/获取的数据分配给它。或者建议使用Handler类从线程中获取数据吗?我想象只有在希望更新UI时才会使用处理程序。
while(true)
{
if (!thread1.isAlive() && !thread2.isAlive())
{
startActivity(intent)
}
}
在我能够通过 Intent 传递两个线程的数据之前,我需要等待这两个线程都完成。我该如何实现?我可以使用上面展示的代码来实现,但那似乎是不对的。
Runnable
的构造函数传递。对于2 - 使用Thread.join()。 - Mihai