gpt4 book ai didi

java - 创建持久连接

转载 作者:行者123 更新时间:2023-12-01 15:23:18 25 4
gpt4 key购买 nike

在我的 Android 应用程序中,我尝试创建持久连接来下载图像。这是我的代码

 public class PersActivity extends  Activity {
ImageView img;
String imageUrl="http://192.168.1.4/JRec/";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);


Button bt3= (Button)findViewById(R.id.download);
bt3.setOnClickListener(getImgListener);
img = (ImageView)findViewById(R.id.image);
}

View.OnClickListener getImgListener = new View.OnClickListener()
{

@Override
public void onClick(View view) {


for (int i = 0; i<4;i++){
downloadFile(i,imageUrl+"images/"+i+".png");

}


}

};

Bitmap bmImg;
void downloadFile(int i, String fileUrl){

URL myFileUrl =null;
try {
myFileUrl= new URL(fileUrl);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {

System.out.println("Opening connection");
HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection();
conn.setRequestProperty("Connection", "keep-alive");
conn.setDoInput(true);
conn.connect();


System.out.println("Downloading"+fileUrl);
InputStream is = conn.getInputStream();

bmImg = BitmapFactory.decodeStream(is);
img.setImageBitmap(bmImg);

if (i ==3){
System.out.println("Disconnected");
conn.disconnect();
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

当我每次应该打开连接进行下载时开始下载文件时,我只想打开连接一次,并且当应用程序结束下载所有文件时,必须断开连接。有什么办法可以做到这一点吗?

感谢任何关注此事的人。

最佳答案

Http 连接是“无状态”的,因此没有像 SSH 连接那样保持打开状态的连接;因此,您下载的每个图像都将在单独的请求/连接中完成。 (这也是网络浏览器所做的)。

另外,为什么要将 URL 的创建放在单独的 try/catch 中?这是没有意义的,因为如果您无法创建 URL 对象,那么当您尝试打开连接时,您将得到一个空指针。

关于java - 创建持久连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10547588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com