我正在通过我的服务类之一通过其构造函数初始化我的线程之一的类变量,如下所示:
ProcessMediaThread pThread = new ProcessMediaThread(listMediaPath, mediaType);
pThread.start();
其中listMediaPath是一个ArrayList<String>();
对象。
ProcessMediaThread 类内部:
public class ProcessMediaThread extends Thread
{
private List<String> absoluteMediaPath= new ArrayList<String>();
private String mediaType;
public ProcessMediaThread(List<String> absoluteMediaPathList, String mediaType)
{
this.absoluteMediaPath = absoluteMediaPathList;
this.mediaType= mediaType;
}
我的重写run()
方法:
@Override
public void run()
{
if(mediaType.equals(MediaType.PHOTO)) //<- mediaType value is retained..
{
for(int i=0;i<absoluteMediaPath.size();i++) // <- here absoluteMediaPath is empty..!!
{
//...
}
我的一位朋友建议我在构造函数级别采用不同的方法:
this.absoluteMediaPath.addAll(absoluteMediaPathList);
哪个有效..!!
谁能建议问题究竟出在哪里以及在addAll(Collection<? extends E> c);
做什么?