gpt4 book ai didi

Android progress Dialog 只更新 Message ,不更新 bar 和 lines

转载 作者:行者123 更新时间:2023-11-29 14:51:20 25 4
gpt4 key购买 nike

我要实现FTP下载功能。它有效,但在报告进度时,我只发现只有消息发生变化,但数字和条形图没有变化

我截屏如下

enter image description here

下面是我的代码:

public void buttonExit(View v) {
System.exit(1);
}

public void doClick(View v){

//ftp

filename = null;
filename = "giant.mp4";

pd = new ProgressDialog(this);
pd.setTitle("EOrder");
pd.setMessage("Downloading file. Please wait...");
pd.setIndeterminate(true);
pd.setMax(100);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setProgress(0);
pd.setCancelable(false);
pd.show();

ad = new AlertDialog.Builder(this);
ad.setTitle("EOrder");
ad.setMessage("Download Finish");
ad.setNeutralButton("OK", null);

new FTPDownload().execute(filename);
}

class FTPDownload extends AsyncTask<String , String , Void>{

boolean running = true;

Date today = Calendar.getInstance().getTime();
Format formatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
String reportDate = formatter.format(today);


String fileAndroid = reportDate + "_" + filename;

@Override
protected Void doInBackground(String... params) {
// TODO Auto-generated method stub
Log.d("******", "Background thread starting......");

FTPClient client = new FTPClient();

try {
Log.d("tag" , "arrived");

client.connect("newaswrissssing.win5.siteonlinetest.com");
boolean successLogin = client.login("newaswrissssing", "newaswrissssing2014cap!");


if(successLogin){
client.changeWorkingDirectory("dummy");
Log.d("tag" , "success");
long fileSize = getFileSize(client , params[0]);
client.setFileType(FTP.BINARY_FILE_TYPE);
client.enterLocalPassiveMode();

File instanceRecordDirectory = new File(Environment.getExternalStorageDirectory() + File.separator + "TVB_Movie");

if(!instanceRecordDirectory.exists()){
instanceRecordDirectory.mkdirs();
}

File instanceRecord = new File(instanceRecordDirectory.getAbsolutePath() + File.separator + fileAndroid);

if(!instanceRecord.exists()){
instanceRecord.createNewFile();
}

BufferedOutputStream desFileStream = new BufferedOutputStream(new FileOutputStream(instanceRecord.getAbsolutePath()),8*1024);


InputStream in = client.retrieveFileStream(params[0]);

Log.d("as" , String.valueOf(in));

byte[] buffer = new byte[1024];
int len1 = 0;
long total = 0;

while ((len1 = in.read(buffer)) > 0) {
total += len1; //total = total + len1
Log.d("aDDs" , String.valueOf(in));
publishProgress("" + (int)((total*100)/fileSize));
desFileStream.write(buffer, 0, len1);
}

desFileStream.flush();
desFileStream.close();

client.completePendingCommand();
in.close();

}else{
Log.d("tag" , "sosad");
}

} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
client.logout();
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}

protected void onProgressUpdate(String... progress) {
super.onProgressUpdate(progress);
Log.d("progress","values: "+progress[0]);
pd.incrementProgressBy(Integer.parseInt(progress[0]));
pd.setMessage("Downloading file... Progress at " + progress[0] + "%");
}

protected void onPostExecute(Void result) {
super.onPostExecute(result);
pd.dismiss();
ad.show();
}

@Override
protected void onPreExecute() {
super.onPreExecute();
}

除了使用 pd.incrementProgressBy(Integer.parseInt(progress[0]));setProgress,你能告诉我还有什么其他的步骤吗?

最佳答案

您的 ProgressDialog 不应该是不确定的。您应该使用 false 而不是 true

调用 setIndeterminate
pd.setIndeterminate(false);

你应该使用 setProgress 而不是 incrementProgressBy

关于Android progress Dialog 只更新 Message ,不更新 bar 和 lines,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17272062/

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