私はAndroidアプリケーションにAsyncTask<Task, Void, Boolean>
スレッドを持っています。そして、このスレッドが実行を完了すると、Toast.makeText()
によってメッセージを表示したいと思います。このために私はToask.makeText()
をif
とelse
の中にdoInBackground
の方法で追加しました。スレッドは実行を完了していますが、トーストのメッセージは表示されません。それでは、何が問題なのでしょうか?スレッドの実行完了時にトーストが表示されない
コード:メインスレッドで
@Override
protected Boolean doInBackground(Task... arg0) {
try {
Task task = arg0[0];
QueryBuilder qb = new QueryBuilder();
HttpClient httpClient = new DefaultHttpClient();
HttpPost request = new HttpPost(qb.buildContactsSaveURL());
StringEntity params =new StringEntity(qb.createTask(task));
request.addHeader("content-type", "application/json");
request.setEntity(params);
HttpResponse response = httpClient.execute(request);
if(response.getStatusLine().getStatusCode()<205)
{
/*this is the message inside if*/
Toast.makeText(context, "inside -IF", Toast.LENGTH_SHORT).show();
return true;
}
else
{
/*this is the message inside else*/
Toast.makeText(context, "inside -ELSE", Toast.LENGTH_SHORT).show();
return false;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
[doInBackgroundのAsyncTaskでトーストを表示する方法](0120-1790351/how-to-show-toast-in-asynctask-in-doinbackground) –