protected void search() { // nag about no connectivity if (!AndroidUtils.isNetworkConnected(getSherlockActivity())) { Toast.makeText(getSherlockActivity(), R.string.offline, Toast.LENGTH_LONG).show(); return; } String query = mSearchBox.getText().toString().trim(); if (query.length() == 0) { return; } if (mSearchTask == null || mSearchTask.getStatus() == AsyncTask.Status.FINISHED) { mSearchTask = new SearchTask(getActivity()); AndroidUtils.executeAsyncTask(mSearchTask, query); } }
void executeSearchTask(String query) { if (DEBUG) Log.d(TAG, "sendQuery()"); mSearchHolder.query = query; // not going through set* because we don't want to notify search result // observers. mSearchHolder.results = null; // If a task is already running, don't start a new one. if (mSearchTask != null && mSearchTask.getStatus() != AsyncTask.Status.FINISHED) { if (DEBUG) Log.d(TAG, "Query already running attempting to cancel: " + mSearchTask); if (!mSearchTask.cancel(true) && !mSearchTask.isCancelled()) { if (DEBUG) Log.d(TAG, "Unable to cancel search? Notifying the user."); Toast.makeText( this, getString(R.string.search_already_in_progress_toast), Toast.LENGTH_SHORT); return; } } mSearchTask = (SearchTask) new SearchTask().execute(); }