gpt4 book ai didi

android - 使用对象而不是字符串处理 AsyncTask

转载 作者:行者123 更新时间:2023-11-30 04:11:19 25 4
gpt4 key购买 nike

如何在 Android 中处理对象线程?我正在尝试查看是否有一种方法可以将 AsyncTask 类(doInBackground()onPostExecute() 方法)与对象一起使用而不是字符串。我还想与 UI 交互

是否有好的入门教程或任何提示?

谢谢

最佳答案

您可以像下面的示例那样子类化 AsyncTask。

private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
totalSize += Downloader.downloadFile(urls[i]);
publishProgress((int) ((i / (float) count) * 100));
}
return totalSize;
}

protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}

protected void onPostExecute(Long result) {
showDialog("Downloaded " + result + " bytes");
}
}

在此示例中,“URL”是参数类型,Long 是结果类型(传递给 onPostExecute()),Integer 是可选的进度指示器。参数类型、进度类型和结果类型如果不使用,可以是“Void”类型。

您可以找到这个示例和更长的解释 here

与 ui 的交互必须在 onPostExecute() 中发生。

关于android - 使用对象而不是字符串处理 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10824501/

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