2011-05-15 105 views
0

在活动的onCreate()中,我强制将活动的方向从纵向更改为横向。这是行得通的,但是仿真器有一个小的延迟。该活动实际上是其中一个选项卡。所以当用户点击标签时,他会期待立即回应。所以我想显示一个进度对话框,直到视图完全加载。我如何实现这一目标?我试图做下面的但它不起作用,如何在Android应用程序中创建进度对话框

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.chart); 

    ProgressDialog dialog = new ProgressDialog(this); 
    dialog.setMessage("Loading..."); 
    dialog.show(); 

    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    . 
    . 
    . 
    dialog.dismiss();//after the view is loaded completely } 

任何建议表示赞赏。

+0

如果您在风景中开始使用,延迟是否会发生?如果你的视图需要很长时间才能加载,在onCreate中加载一个更简单的视图,然后启动后台任务来加载“真实”视图,然后通过处理程序调用'setContentView(loadedChartView)'。 – 2011-05-15 02:38:11

+0

“这个工作正常,但仿真器有一小段延迟。” - 在没有ProgressDialog的情况下在真实设备上尝试您的活动。我对模拟器的经验是它经常有严重的滞后。 – Squonk 2011-05-15 02:49:28

+0

@Ted:是的。即使我在风景模式下开始时也有延迟。我认为这种延迟可能是因为,除了强制将活动定位为风景之外,我还隐藏了标签栏。 – sherry 2011-05-15 07:00:59

回答

0

其实,我不认为你的应用程序是可见的但不是在onCreate()。检查事件生命周期... onResume或onStart ......您的Acitivity实际上可见的地方就是您应该这样做的地方。