Cil*_*nco 1 java multithreading return
我想知道是否有一个很好的方法可以从正在运行的线程返回对象。在我的android项目中(对于这个问题并不重要),我有以下方法:
public void getFolders()
{
Thread t = new Thread(new Runnable()
{
@Override
public void run()
{
List<File> result = new ArrayList<File>();
Files.List request = null;
do
{
try
{
request = service.files().list();
request.setQ("'appdata' in parents");
FileList files = request.execute();
result.addAll(files.getItems());
request.setPageToken(files.getNextPageToken());
}
catch (IOException e)
{
System.out.println("An error occurred: " + e);
request.setPageToken(null);
}
}
while (request.getPageToken() != null && request.getPageToken().length() > 0);
}
});
t.start();
}
Run Code Online (Sandbox Code Playgroud)
此方法从Internet上获取一些数据并将结果存储在中List<File> result。这就是为什么我不想在UI线程中运行它的原因。现在,我想将此列表返回到我的main方法。做这个的最好方式是什么?
public interface Callable<V>
Run Code Online (Sandbox Code Playgroud)
一个返回结果并可能引发异常的任务。实现者定义一个没有参数的单一方法,称为call。
该Callable接口与相似Runnable,因为两者都是针对其实例可能由另一个线程执行的类设计的。Runnable但是,A 不返回结果,并且不能引发已检查的异常。
编辑: 另外,您应该在android中使用AsyncTask来执行后台任务,而不要创建自己的线程。
| 归档时间: |
|
| 查看次数: |
6489 次 |
| 最近记录: |