2011-06-11 50 views
4

我有两项活动。第一个执行第二个。ProgressBar参与活动

Intent i = new Intent(MyOne.this, MyTwo.class); 
        startActivity(i); 

问题:我的第二个活动确实在推出一些繁重的工作,因此推出几个第二,它推出之前,我看到一个黑色的屏幕。

是否有任何方法来设置进度条或一些图像,而不是这个黑屏?因为我不认为用户会等待什么,他不知道。我在第二项活动中尝试设置setcontentview后设置进度条,但只有在活动完全启动时,进度条才会显示。

回答

4

我建议你使用AsyncTask异步执行此操作。

短的例子:

ProgressDialog dialog; 
class YourTask extends AsyncTask<Void, Void, Void> { 
     protected void onPreExecute() { 
        dialog = ProgressDialog.show(...); 
     } 

     protected Void doInBackground(Void... unused) { 
      try { 
       // doSomethingHeavy(); 
        // publishProgress(...); 
      } catch(Exception e) { 
       //... 
      } 

      return null; 
     } 

     protected void onProgressUpdate(Void... unused) { 
     } 

     protected void onPostExecute(Void unused) { 
      dialog.dismiss(); 

     } 
    }