Кажется, у вас есть проблемы с закрытием диалога, попробуйте с помощью обработчика выполнить действие в потоке пользовательского интерфейса:
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// perform logic
if(LoadingDialog!=null)//first check if dialog is not null.This might be a reason for crashing
LoadingDialog.dismiss();
LoadingDialog=null
}
};
, а затем вызвать его в своей деятельности, просто позвонив handler.sendEmptyMessage(0);
и все готово.
Дополнительные советы: также посмотрите на AsyncTask для выполнения асинхронной операции.