2012-02-12 91 views
0

在onCreate()期间,我从Web上下载资源,这需要时间。我想在屏幕上显示一条消息来通知用户。我尝试敬酒,但没有出现。是否有另一种方法可以在屏幕上打印某些内容?如何在onCreate中打印某些东西

回答

0

我认为onCreate()像一个类的构造函数一样工作,并且当它尚未完成时,您无法加载任何视觉效果。 所以我建议你在你的消息中使用另一个活动,然后在其中调用你的活动。

0

您必须创建一个启动画面,这就是它的调用方式。 这是一个调解器处理此类操作的活动。

例子:

public class SplashScreen extends BaseActivity { 
    public ProgressDialog ProgressBar = null; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     HideTitle(); 
     setContentView(R.layout.splash); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

     if (!IsConnected()) {   
      Handler handler = new Handler(); 
      handler.postDelayed(new Runnable() { 
       public void run() { 
        finish(); 
       } 
      }, 4000); 

     } else { 
      ProgressBar = ProgressDialog.show(this, "", "Loading...", false, false); 
      SplashScreenDelay splashScreenDelay = new SplashScreenDelay(this, this); 
      splashScreenDelay.execute(10); 
     } 
    } 

这里是不加载的类和发送到主

public class SplashScreenDelay extends AsyncTask<Integer, Integer, List<RssItem>> { 
    private Context _context; 
    private SplashScreen _activity; 

    public SplashScreenDelay(SplashScreen activity, Context context) { 
     _context = context; 
     _activity = activity; 
    } 

    @Override 
    protected List<RssItem> doInBackground(Integer... params) { 
     return RssParsingService.getListOfItems(); 
    } 

    @Override 
    protected void onPostExecute(List<RssItem> result) { 
     Intent intent = new Intent(_context, Viewport.class); 
     _context.startActivity(intent); 

     if (_activity.ProgressBar != null) { 
      _activity.ProgressBar.dismiss(); 
     }  
    } 
} 
+0

后,出于某种原因,ProgressDialog就不会出现。什么可能是错的? – 2012-02-12 11:46:00