0

我有我在后台线程中显示的敬酒消息。

这是我想要在我的AsyncTask.

ParseDetails Objparsecities = new ParseDetails(
        new ByteArrayInputStream(result.toString()
                .getBytes("UTF-8")));
if ((Objparsecities.parse().size()) == 0) {

    Toast.makeText(getApplicationContext(),
            "No result found for" + params[0], Toast.LENGTH_LONG)
            .show();

} else
    lstresponse = Objparsecities.parse();
}

我能知道我在做什么错吗?

谢谢:)

4

3 回答 3

0

尝试使用runOnUiThread

if ((Objparsecities.parse().size()) == 0) {
  context.runOnUiThread(new Runnable(){
  public void run() {
      Toast.makeText(context,
                    "No result found for" + params[0], Toast.LENGTH_LONG)
                    .show();
  }
  });
}
于 2013-03-19T09:51:31.027 回答
0

这是我试图在我的 AsyncTask 中显示的内容。

AsyncTask 提供了一些允许用户使用特定信息更新 UI 的方法。这样您就可以将 Toast 移动到

  • onPreExecute()
  • onProgressUpdate()
  • onPostExecute()

这些方法在 Main(UI) 线程上运行并允许更新或修改 UI。

如果您想Toast在后台处理期间显示一些信息,请在您的 doInBackground() 方法中调用 publishProgress() ,该方法会立即调用onProgressUpdate()方法,您可以简单地调用Toast.show()

于 2013-03-19T09:58:11.133 回答
0
onPostExecute - executes on UI thread or publishProgress(); in your doinbackground and

 protected void onProgressUpdate(Integer... progress) {
 }

异步任务

于 2013-03-19T10:04:58.050 回答