Вы можете использовать Async Задача
http://developer.android.com/reference/android/os/AsyncTask.html. Взгляните на документацию под заголовком 4 шага.
AsyncTask разработан как вспомогательный класс вокруг Thread and Handler и не представляет собой общую структуру потоков. AsyncTasks в идеале следует использовать для коротких операций (не более нескольких секунд). Если вам нужно поддерживать длительность потоков в течение длительных периодов времени, настоятельно рекомендуется использовать различные API, предоставляемые java.util.concurrent pacakge, такие как Исполнитель, ThreadPoolExecutor и FutureTask.
В вашей деятельности после setContentView()
pd= new ProgressDialog(this);
pd.setTitle("Making Soap Request");
new SoapRequestTask().execute();
private class SoapRequestTask extends AsyncTask<VOid, Void, Void> {
protected void onPreExecute()
{
pd.show();
}
protected SoapObject doInBackground(Void... params) {
// TODO Auto-generated method stub
//Soap request. do not update ui here
return null;
}
protected void onPostExecute(Void param)
{
//update ui here
pd.dismiss();
}
Альтернативой AsyncTask является Robospice. https://github.com/octo-online/robospice.
Здесь вы можете начать работу с robopice. https://github.com/octo-online/robospice/wiki/Starter-Guide.
Образец robospice по телефону https://play.google.com/store/apps/details?id=com.octo.android.robospice.motivations&feature=search_result.
Некоторые из особенностей robospice.
1. выполняет асинхронные (в фоновом режиме AndroidService) запросы сети (например: запросы REST с использованием Spring Android).
2.is строго типизирован! Вы делаете свои запросы с помощью POJO, и вы получаете POJO в качестве результатов запроса.
3.enforce нет ограничений ни на POJO, которые использовались для запросов, ни на классах активности, которые вы используете в своих проектах.
4. отправляет результаты (в Json как с Джексоном, так и с Gson, или Xml, или с плоскими текстовыми файлами, либо с двоичными файлами, даже используя ORM Lite).
5.notifies своей деятельности (или любой другой контекст) результата запроса сети, если и только если они все еще живы
6.no утечки памяти вообще, как Android-погрузчики, в отличие от Android AsyncTasks извещает ваши действия по их теме пользовательского интерфейса.
7. использует простую, но надежную модель обработки исключений.
IntentService точно выполняет то, что вы хотите. Почему вы предпочитаете не использовать его?См. Эту ссылку для хорошего сравнения с AsyncTask http://stackoverflow.com/a/4177349/530039 – akaya
OK .. спасибо. Но в моем случае: 1. Я не хочу уведомлять пользователя о том, что что-то происходит. Хотя пользователь заполняет некоторые записи в различных действиях, мой процесс загрузки (мыльные вызовы) должен произойти. то есть это должно быть очень фоновая вещь, и я не хочу, чтобы пользователь прерывал его работу. Это возможно ? – 2013-03-22 07:44:19
Вам необязательно уведомлять пользователя. Услуги должны быть очень похожими на то, что вы хотите. Попробуй. – akaya