【问题标题】:AsyncTask to get text file and transfer lines to stringsAsyncTask 获取文本文件并将行传输到字符串
【发布时间】:2013-06-29 21:23:11
【问题描述】:

如何从 Internet 上获取文本文件以下载和更新预先确定的字符串名称,以便可以在 TextView 上使用这些文件,从而在必须更改信息时不必更新应用程序。我已经设置了一个 AsyncTask 以便可以在后台下载文件,但是我将如何下载文件、读取文件然后将其放入字符串中,然后重新加载 TextView 以便更新文本。任何有关这方面的帮助或代码将不胜感激,我已经有了

protected void doInBackground 部件设置并准备就绪。我在这方面遇到了一段时间的麻烦,所以任何帮助都会非常方便。我曾尝试使用 httppost 来获取文件,但我不明白我必须改变什么,所以它起作用了。感谢阅读!

有问题的文本文件是http://nowactivity.webs.com/teststring.txt

【问题讨论】:

  • 您必须粘贴一些代码,但请记住,您可能必须在 AsyncTask 中为此使用 jsoup。
  • @g00dy 你有什么快速的方法可以做到这一点吗?我对jsoup一无所知。
  • 我有,但我得稍微挖掘一下。
  • @g00dy 非常感谢。

标签: android android-asynctask void protected


【解决方案1】:

这里有一个更完整的答案:

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import android.os.AsyncTask;
import android.util.Log;

...

@Override
protected String doInBackground(String... params) {
    // perform Long time consuming operation
Document doc = null;
String returnValue ="";
String baseWebPage = "http://nowactivity.webs.com/teststring.txt";

for(int i = 0; i< params.length; i++){
  try {
    doc = Jsoup.connect(
        baseWebPage)
        .get();
  } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }

  Log.i("DOC", "The line " + doc.toString());

}

  return returnValue;
}

我相信您可以管理其余的实施;-)

更多关于 jsoup 的信息可以在here找到。

干杯

【讨论】:

  • 非常感谢!你真是天赐之物!
  • 请问您的 AsyncTask 参数、进度和结果都使用了什么?
  • 是的,我使用params 将URL 的最后一部分传递给AsyncTask,从而根据最后一部分请求解析不同的页面。关于进度,如果您当然是指onProgressUpdate() - 我不使用它。如果结果是指doInBackground 的返回值,我用它来返回网页地址的最后一部分或其他字符串,这取决于一些if{}else{} 语句,仅此而已。 :)
猜你喜欢
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-10
  • 1970-01-01
  • 2013-12-12
  • 2015-10-15
相关资源
最近更新 更多