吐司不能显示

时间:2013-03-19 09:49:33

标签: android toast

我有toast消息,我正在后台线程中显示。

这是我想在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();
}
我能知道我在做什么错误。

感谢:)

3 个答案:

答案 0 :(得分: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();
  }
  });
}

答案 1 :(得分:0)

  

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

AsyncTask提供了一些允许用户使用特定信息更新UI的方法。所以你可以把你的Toast转移到

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

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

如果要在后台处理过程中向Toast显示一些信息,请在doInBackground()方法中调用publishProgress(),该方法会立即调用onProgressUpdate()方法,您可以在其中调用Toast.show()

答案 2 :(得分:0)

onPostExecute - executes on UI thread or publishProgress(); in your doinbackground and

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

AsyncTask