Хороший подход к многоэтапной загрузке файлов в Android

Я работаю над куском кода для выполнения POST-запроса данных из нескольких частей, который в моем случае просто загружает изображение на сервер с параметрами. Вот что у меня сейчас:

У меня есть кнопка для запуска многочастного запроса, в кнопке OnClickListener, у меня есть этот код для запуска нового потока:

new Thread(new Runnable(){

@Override
public void run() {

    String photoUri = getPhotoUri();
    String url = getEndPointUrl();

    try {   

    NewPostRequest.postFile(url, photoUri, <Other Params...>);

    } catch (Exception e) {
        // Exception Handling           
    } 
}).start();

ИNewPostRequest.postFile просто используетApache Http Client сделать запрос, в основном, как показано ниже:

HttpClient client = new DefaultHttpClient();

HttpPost post = new HttpPost(url);

MultipartEntityBuilder builder = MultipartEntityBuilder.create();    

builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

File file = new File(fileUri);

FileBody fb = new FileBody(file);

builder.addPart("file", fb);

builder.addTextBody("param", otherParam);

HttpEntity entity = builder.build();

post.setEntity(entity);

HttpResponse response = client.execute(post);      

Мне нужно крутить новый поток каждый раз, потому что последние выпуски Android не позволяют программе делать http-запросы в потоке пользовательского интерфейса. Однако я действительно против того, чтобы раскручивать случайную нить и выводить ее из-под контроля, как в коде выше. Я пытался использоватьGoogle Volley библиотека, но это не маленький инструмент при загрузке больших файлов данных, таких как изображения.

Мне было интересно, что я должен сделать, чтобы сделать этот звонок более управляемым?

===== ОБНОВЛЕНИЕ =====

Я перешел на использованиеAsyncTask и пока работает нормально. Я буду держать этот вопрос открытым, чтобы увидеть, есть ли у кого-то лучший подход.

Ответы на вопрос(3)

Ваш ответ на вопрос