Я разрабатываю приложение с android, я новичок в нем в одной части моих проектов Мне нужно получить данные от полей ввода от пользователей, а затем создать Http-соединение с сервером и поместите результат первого вызова вместе с некоторыми другими полями в другое соединение Http с сервером, я не знаю, какой правильный подход его реализовать.два зависимых HttpUrlConnection с AsyncTask в android
public class TwoHttpActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_transport);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
}
public static class PlaceholderFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
params[0] = firstText;
. . . .
. . . .
params[3] = secondText;
}
});
}
}
Вопрос: Теперь мне нужно PARAMS [0] для отправки на один URL http://myserver/urlOne, а затем получить результат от сервера и поместить их вместе с Params [1] для Params [3] и послать их вместе на второй URL сервера http://myserver/urlTwo
Поскольку эти соединения должны быть выполнены в classes
простирается от AsyncTask
, то я думаю, что это не возможно просто
public class FirstUrlTask extends AsyncTask<String[], Void, Void> {
//the class handles the call to first url inside
//doInBackground(String[]... params)
}
и
public class SecondUrlTask extends AsyncTask<String[], Void, Void> {
//the class handles the call to second url inside
//doInBackground(String[]... params)
}
, а затем
firstUrlTask.execute(..);
secondUrlTask.execute(..);
внутри button.setOnClickListener(new View.OnClickListener()
Поскольку они являются асинхронные задачи не ясно, какие задачи будут выполняться первым, поэтому, пожалуйста, помогите мне с правильным подходом, пожалуйста, предоставьте свой ответ с подробной информацией и образцом кода.
No. Не в doInBackground. Сделайте это в onPostExecute. – greenapps