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
onPostExecute - executes on UI thread or publishProgress(); in your doinbackground and

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

非同期タスク

于 2013-03-19T10:04:58.050 に答える
0

これが私のAsyncTaskに表示しようとしているものです。

AsyncTask は、ユーザーが特定の情報で UI を更新できるようにするいくつかのメソッドを提供します。トーストを次の場所に移動できます

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

これらのメソッドはメイン (UI) スレッドで実行され、UI を更新または変更できます。

バックグラウンド処理中に何らかの情報を表示したい場合はToast、メソッドをすぐに呼び出す doInBackground() メソッドで publishProgress() を呼び出すonProgressUpdate()と、そこで簡単に呼び出すことができますToast.show()

于 2013-03-19T09:58:11.133 に答える