У меня 52 изображения, которые приходят с веб-URL. Я хочу показать эти изображения в многопоточном процессе.
Может ли кто-нибудь подсказать мне, как это возможно ?????
Я реализую код ниже, но он не работает.
for (int i = 0; i <total_data; i++) {
GetBitmapClass getBitmapClass=new GetBitmapClass(i, image_path[i]);
if(Thread.activeCount()>14)
{
//System.out.println("Size "+pending_thread.size());
pending_thread.addElement(getBitmapClass);
}else
{
getBitmapClass.start();
}
}
//Thread class
class GetBitmapClass extends Thread
{
int index;
String url;
public GetBitmapClass(int index,String url)
{
this.index=index;
this.url=url;
}
public void run() {
// TODO Auto-generated method stub
StreamConnection stream = null;
InputStream in = null;
if(Thread.activeCount()>14)
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("Thread "+index+" Started \n count= "+Thread.activeCount());
try {
//stream = (StreamConnection) Connector.open(url+";deviceside=true;");
stream = (StreamConnection) Connector.open(url+";interface=wifi");
in = stream.openInputStream();
}
catch (Exception e) {
}
byte[] data = new byte[1024];
try {
DataBuffer db = new DataBuffer();
int chunk = 0;
while (-1 != (chunk = in.read(data))) {
db.write(data, 0, chunk);
}
in.close();
data = db.getArray();
} catch (Exception e) {
}
EncodedImage jpegPic = EncodedImage.createEncodedImage(data, 0,
data.length);
Bitmap bm = jpegPic.getBitmap();
bmp[index]=bm;
UiApplication.getUiApplication().invokeLater (new Runnable() {
public void run()
{
bitmapFields[index].setBitmap(bmp[index]);
gridFieldManager.add(bitmapFields[index]);
if((pending_thread.size()>0))
{
GetBitmapClass thread1=(GetBitmapClass)pending_thread.elementAt(0);
try
{
thread1.start();
pending_thread.removeElementAt(0);
}
catch (Exception e) {
// TODO: handle exception
System.out.print("Thread Not Started");
}
System.out.println("Size Reduce"+pending_thread.size());
}
System.out.print("Thread Completed"+index);
}
});
}
}
Заранее спасибо.