我有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();
}
我能知道我在做什么错误。
感谢:)
答案 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转移到
这些方法在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) {
}