2

我只是尝试了一种愚蠢的方法,它使我的应用程序崩溃了......基本上我有一个包含三个选项卡(包含三个活动)的活动。每个选项卡都从从网上下载的 xml 文件中获取其输入。一切都很好,但是当我启动我的应用程序时,它已经下载了 xml 文件,并且有一个“等待”时间。

我设法通过添加启动画面来解决这个问题。它看起来很漂亮,但问题是当我单击第二个选项卡时,它仍然必须从网上获取列表,所以现在看起来很丑......它在显示列表之前等待。所以我所做的是设计一个只下载 xml 文件的 AsyncTask。在我的主要活动中,我最初生成了两个任务并将 URL 和 Intent 作为参数发送。在选项卡内开始的活动中,我使用了 wait()。在 AsyncTask 内部,下载完成后,我使用 notify() 通知 Intent。这崩溃了!当然,我没想到它会起作用,只是想尝试一下 :) 编写它以便我可以得到关于失败原因的反馈或防止其他人在此上浪费时间......

现在,我相信很多人都面临标签内“等待”时间的问题。我该如何解决这个问题?我正在考虑调暗屏幕然后显示一系列祝酒词或在选项卡内显示进度指示器或预取 xml 文件...我不知道如何实现这些...任何想法?

4

2 回答 2

2

信用:标记。谢谢!

问题:当您的应用程序忙于执行某些工作时显示进度指示器

方法:

public class Approach extends ListActivity {

    ProgressDialog myProgressDialog = null; 
    ListView myList = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myList = getListView();

        myProgressDialog = ProgressDialog.show(getParent(),       
                "Please wait...", "Doing extreme calculations...", true); 
        //Do some calculations
            myProgressDialog.dismiss();

    }
}

有一些挑战(比如更新一些 UI 元素)。如果需要,您可能希望生成一个不同的线程来进行计算。

另外,如果您对此感兴趣,您可能也对马特的方法感兴趣:android-showing-indeterminate-progress-bar-in-tabhost-activity

于 2009-10-09T17:23:50.957 回答
1

ProgressDialog.

或者,使选项卡具有android:visibility="gone"直到数据准备好,然后使它们visible. 在此期间,显示某种加载图形(可能带有RotateAnimation应用)。

于 2009-10-08T23:14:07.827 回答