我收到来自服务的json数据。我使用asynctask来获取数据。当数据为空时,我想取消asynstask并向用户显示一些消息。我如何取消asyntask并显示吐司消息
public class MainActivity extends ActionBarActivity {
// Progress Dialog
private ProgressDialog pDialog;
private LoadCategories mTask;
.....
/**
* Listening to Load More button click event
* */
btnLoadMore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if (URL_CATEGORY == null || URL_CATEGORY == "")
{Toast.makeText(MainActivity.this,"URL est vide", Toast.LENGTH_LONG).show();}
else
{ // Starting a new async task
//new LoadCategories().execute();
mTask = new LoadCategories();
mTask.execute();
}
}
});
....
class LoadCategories extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("en cours...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
// getting JSON string from URL
String json = jsonParser.makeHttpRequest(URL_CATEGORY, "GET",
params);
if (json == null || json == "")
{
mTask.cancel(true);
// if(isCancelled())
// {Toast.makeText(MainActivity.this,"Donée sont vide", Toast.LENGTH_LONG).show();}
synchronized(this) {
while (json.length() == 0) {
if(mTask.isCancelled())
{ Toast.makeText(MainActivity.this,"Donée sont vide", Toast.LENGTH_LONG).show();}
}
}
}
// Check your log cat for JSON reponse
Log.d("Categories JSON: ", "> " + json);
return json;
}
@Override
protected void onPostExecute(String json) {
try {
categories = new JSONArray(json);
categoryList.clear();
if (categories != null) {
// looping through All albums
for (int i = 0; i < categories.length(); i++) {
JSONObject c = categories.getJSONObject(i);
.....
我的问题程序从不取消并显示消息。 当我调试它,它进入到我的病情
if (json == null || json == "")
{
mTask.cancel(true);
// if(isCancelled())
// {Toast.makeText(MainActivity.this,"Donée sont vide", Toast.LENGTH_LONG).show();}
synchronized(this) {
while (json.length() == 0) {
if(mTask.isCancelled())
{ Toast.makeText(MainActivity.this,"Donée sont vide", Toast.LENGTH_LONG).show();}
}
}
}