не может отображать индикатор выполнения во время загрузки другого действия в Android - PullRequest
0 голосов
/ 24 марта 2010

Это может быть простой вопрос, но я новичок, мне нужно ваше предложение по этому вопросу. У меня есть две операции А1 и А2. Когда я нажимаю на изображение на экране А1, мне нужно отображать индикатор выполнения, пока не появится экран А2 (у А2 есть огромная задача). Я попробовал

 image.setOnClickListener(new ImageView.OnClickListener() {

            public void onClick(View v)
            {

             myProgressDialog = ProgressDialog.show(A1.this,     
                        "Please wait...", "Loading...", true);

              new Thread() {
                   public void run() {
                        try{



                        Intent i = new Intent(A1.this,.A2.class);
                        startActivity(i);


                        } catch (Exception e) {  }
                        // Dismiss the Dialog
                        myProgressDialog.dismiss();
                   }
              }.start();


             }
        });

Это не может отображать индикатор выполнения. Я знаю, что я делаю ошибку, но я не мог понять

Ответы [ 2 ]

2 голосов
/ 24 марта 2010

Лучше всего показать диалог прогресса в упражнении А2. Как только вы запустите действие, предыдущее действие переходит в фоновый режим, поэтому диалоговое окно хода выполнения не будет отображаться.

0 голосов
/ 09 августа 2011

Прежде всего, диалог прогресса должен вызываться в отдельном потоке. Используйте AsyncTask <>, чтобы отобразить диалоговое окно и одновременно выполнить некоторые операции в фоновом режиме. Пример кода может быть что-то вроде этого

class hello extends AsyncTask<Void,Void,Void>
{
       ProgressDialog dialog=null;
       Intent i;

   @Override
   protected void onPreExecute() 
   {


           dialog=ProgressDialog.show(A1.this,"PLEASE WAIT","LOADING CONTENTS  ..",true);
   }

    @Override
    protected void onPostExecute(Void result) 
    {
            if(dialog.isShowing())
                    {
                       dialog.dismiss();
                       startActivity(i);
                    }           
    }

    @Override
    protected Void doInBackground(Void... params) 
    {
        i = new Intent(A1.this,.A2.class);
                    return null;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...