在Android中加载另一个Activity时无法显示进度条

时间:2010-03-24 15:56:19

标签: android progress-bar

这可能是一个简单的问题,但我是初学者,我需要你的建议。 我有两个活动A1和A2。当我点击A1屏幕上的图像时,我必须显示进度条,直到A2屏幕出现(A2活动有很多任务要做)。我试过了

 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 个答案:

答案 0 :(得分:2)

最好的办法是在A2活动中显示进度对话框。启动活动后,之前的活动将进入后台,因此无论如何都不会显示进度对话框。

答案 1 :(得分:0)

首先,需要在单独的线程上调用progress对话框。使用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;
    }