Android - прогрессиалог не отображается в AsyncTask

У меня есть приложение для Android, с которым у меня проблемы.

В основномProgressDialog не показывает вообще. Я считаю, что это какая-то проблема, но я нене знаю, как это исправить.

я используюActionBarSherlock с некоторымиFragments, Я также использую новый AndroidDrawerLayout где у меня есть свои варианты в ящике, которые заменяют фрагмент при нажатии.

При первой загрузке моего приложения я хочу проверить базу данных, чтобы увидеть, были ли загружены исходные данные. Если нет, то я ухожу и начинаюAsyncTask скачать данные. Это ДОЛЖНО иметьProgressDialog показывать во время этого, но это не так.

Может кто-то видит, где я иду не так? Благодарю.

Главный экран - Целевая страница / фрагмент по умолчанию при открытии приложения

public class MainScreen extends SherlockFragment {
    public static final String TAG = "MainScreen";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.activity_main, container, false);
        setHasOptionsMenu(false);

        ImageView imgLogo = (ImageView) rootView.findViewById(R.id.imgMainScreen);
        imgLogo.setOnClickListener(new ButtonHandler(getActivity()));

        checkDatabase();
        return rootView;
    }

    private void checkDatabase() {
        //Ensure there is data in the database
        DBHelper db = new DBHelper(this.getSherlockActivity());
        db.checkDatabase();
    }
...
}

DBHelper.checkDatabase () - метод, который инициирует загрузку

public void checkDatabase() {
    if (isEmpty()) {
        //Connect to net and download data
        NetworkManager nm = new NetworkManager(activity);
        if (!nm.downloadData()) {
            Toast.makeText(activity, R.string.internetCheck, Toast.LENGTH_SHORT).show();
        }
    }
}

и наконецNetworkManager.downloadData () - метод, который запускает:AsyncTask

   public boolean downloadData() {
        try {
            return new HttpConnection(activity).execute().get();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
        return false;
    }

    public class HttpConnection extends AsyncTask {
        private ProgressDialog progressDialog;
        private Activity m_activity;

        protected HttpConnection(Activity activity) {
            m_activity = activity;
        }

        @Override
        protected void onPreExecute() {
            progressDialog = new ProgressDialog(m_activity);
            progressDialog.setMessage("Wait ...");
            progressDialog.setCancelable(false);
            progressDialog.setMax(100);
            progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progressDialog.show();

            super.onPreExecute();
        }

        @Override
        protected Boolean doInBackground(Void... params) {
            String[] types = new String[]{"type1", "type2", "type3", "type4", };
            StringBuilder sb = new StringBuilder();

            for(String type : types) {
                sb = new StringBuilder();
                if(DBHelper.TYPE4_TABLE.equals(type)) {
                    InputStream is = activity.getResources().openRawResource(R.raw.dbdata);
                    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
                    try {
                        sb.append(reader.readLine());
                    } catch (IOException e) {
                        Toast.makeText(activity.getApplicationContext(), "Error retriveving data", Toast.LENGTH_SHORT).show();
                        Log.e(Constants.TAG, "Error reading data");
                        e.printStackTrace();
                    }
                } else {
                    sb = fetchURLData(Constants.ALL_URL+type);
                }
                cleanDataAndStore(sb, type);
            }

            return true;
        }

        @Override
        protected void onPostExecute(Boolean result){
              progressDialog.hide();
        }
    }

Используя приведенный выше код, все, что я получаю, это белый экран при попытке загрузки приложения, а иногда и ANR. Когда загрузка завершена, фрагмент загружается. Так что работает нормально, кроме пропавших без вести.ProgressDialog

PS, обратите внимание, ям настройкаactivity в каждом конструкторе.

Благодарю.

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

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