#java #android #post #android-fragments #asynchttpclient
#java #Android #Публикация #android-фрагменты #asynchttpclient
Вопрос:
Я использую android-async-http-1.4.4.jar
библиотеку, вот как выглядит мой код, я специально не указал объявление / реализацию REMOTE_PHP_URL
и entityJSON
(предположим, что они реализованы правильно).
public class SearchFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_search, container, false);
mFindButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final AsyncHttpClient client = new AsyncHttpClient();
//entityJSON and REMOTE_PHP_URL are implemented correctly
client.post(getActivity(), REMOTE_PHP_URL, entityJSON, "application/json", new JsonHttpResponseHandler() {
@Override
public void onSuccess(JSONObject jsonResultObject) {
/*Success Code here*/
}
});
}
}
}
}
При выполнении client.post
LogCat отображается:
dalvikvm GC_FOR_ALLOC freed 1463K, 21% free 6851K/8628K, paused 4ms, total 4ms
снова и снова (бесконечный цикл), пока я не остановлю процесс в DDMS. LogCat не отображает никаких (красных) ошибок.
Имейте в виду, приведенный выше код отлично работает в других действиях в моем приложении. Я думаю, что это может иметь какое-то отношение к тому факту, что он выполняется во фрагменте, или что-то связанное с контекстом, или и то, и другое. Я новичок в Android, должен ли я использовать что-то другое, кроме getActivity()
контекста?
Я пытался обновить android-async-http-1.4.5.jar
, но когда я это делаю, я @Override
onSuccess()
по какой-то причине не могу.
Спасибо.
Ответ №1:
Я решил это, мой PHP-файл не возвращал правильное JSONObject
значение. Я случайно оставил несколько echo
файлов в своем PHP-файле для целей отладки и забыл их удалить. В этом client.post
утверждении не было ничего плохого!