Java Android不使用AsyncTask管理线程
我有一个项目,我正在工作,我需要提高我的知识线程 场景: 我有一个活动,它调用一个使用线程的方法:Java Android不使用AsyncTask管理线程,java,android,multithreading,Java,Android,Multithreading,我有一个项目,我正在工作,我需要提高我的知识线程 场景: 我有一个活动,它调用一个使用线程的方法: Object soapResponse = soaphttp.fetchNextCatalogueRange(0, numberOfItems); 在soaphttp类中,我有: Thread soapThread = new Thread(new Runnable() { private Object serverResponse = new O
Object soapResponse = soaphttp.fetchNextCatalogueRange(0, numberOfItems);
在soaphttp类中,我有:
Thread soapThread = new Thread(new Runnable()
{
private Object serverResponse = new Object();
public void run()
{
// Do network stuff here
}
});
soapThread.start();
try
{
// crude synchronisation
soapThread.join();
}
问题
使用join()会阻止UI线程。
如果不使用join(),则会出现空指针异常(数据同步错误)
挑战:
在我的活动中,我想在soaphttp类获取数据然后同步时在UI线程上做一些事情,即告诉UI线程数据已经准备好。
例如,显示进度条。。它将在数据提取完成后终止
如何在不使用AsyncTask的情况下执行此操作?在线程的run()方法的最后,使用以下方法之一:
- View类的post()方法
- Activity类的runUnuithRead()方法
在run()方法开始时,您可以使用相同的方法以某种方式更改UI(禁用相同的小部件,显示某种进度指示器…我认为您可以从阅读本文开始。一个非常简单的解决方案是使用handlerAsyncTask将消息发布到UI线程。对于这种情况,Task是一个很好的工具。你为什么不想使用它呢?使用AsyncTask是解决问题的最好方法scenario@Sanjeev我在问题中说我想更好地理解线程。。。我知道如何使用AsyncTask,所以这样做不会解决任何问题。类似问题: