【问题标题】:how to show progress dialog in oncreate in android app如何在android应用程序的oncreate中显示进度对话框
【发布时间】:2011-05-15 02:31:26
【问题描述】:

在活动的 onCreate() 中,我强制将活动的方向从纵向更改为横向。这是有效的,但模拟器中有大约一秒的小延迟。此活动实际上是选项卡之一。因此,当用户单击选项卡时,他会期望立即响应。所以我想显示一个进度对话框,直到视图完全加载。我如何实现这一目标?我尝试执行以下操作,但它不起作用,

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   }

欢迎提出任何建议。

【问题讨论】:

  • 如果您从横向开始,是否会发生延迟?如果您的视图需要很长时间才能加载,请在 onCreate 中加载一个更简单的视图,然后启动后台任务以加载“真实”视图,然后通过处理程序调用 setContentView(loadedChartView)
  • "这可以工作,但在模拟器中有大约一秒的小延迟。" - 在没有 ProgressDialog 的情况下在真实设备上尝试您的 Activity。我对模拟器的体验是它经常有严重的延迟。
  • @Ted:是的。即使我在横向模式下开始也会有延迟。我认为延迟可能是因为除了将活动的方向强制为横向之外,我还隐藏了标签栏。
  • @MisterSquonk:现在,有一个想法。我希望我可以在真实设备上测试它。尽管如此,在模拟器中其他选项卡之间的切换还是非常快的。所以我应该期望切换到“图表”选项卡也必须很快,没有任何延迟。 “图表”选项卡唯一不同的是,方向发生了变化,并且选项卡栏被隐藏了。

标签: android android-activity dialog progress


【解决方案1】:

实际上,我认为您的应用程序尚不可见.. 不在 onCreate() 中。检查事件生命周期 ... onResume 或 onStart ... 您的 Acitivity 实际可见的地方就是您应该执行此操作的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多