3

我有两个活动 Activity1 和 Activity2。单击按钮时,我正在从 Activity1 切换到 Activity2。但是由于网速慢,Activity2 需要很长时间才能加载。在加载活动之前显示空屏幕。

而不是黑屏,我想显示一个进度条,当 Activity2 准备好时,关闭进度条而不会让用户感到沮丧。

我不知道如何执行此操作或启动此操作。我是安卓新手。请通过提出想法来帮助我,或者请分享有关此的任何链接!

提前致谢!!

4

3 回答 3

1

您可以在活动2 的 onCreate 中使用AsyncTask。在完成下载。完成后隐藏并在 UI 中显示内容。onPreExecuteprogressdialogonDoinBackgroundonPostExecuteprogressdialog

示例代码

private class YourTask extends AsyncTask<Void, Void, ContentType> {
    protected void onPreExecute() {
        //show progressdialog here
    }

         protected ContentType doInBackground() {
             // download content
             return content;
         }


         protected void onPostExecute(ContentType content) {
             // hide progress dialog
              // show the content
         }
     }
于 2013-05-26T06:13:20.017 回答
0

使用加载屏幕(不确定的进度条或圆圈很好)或更好的方式启动 Activity2:缓存数据,然后将繁重的东西放在线程上。在线程结束时,删除进度条并显示您的数据。

考虑到这个想法,Activity2 将非常快速地启动,您可以在数据加载期间显示您想要的任何内容

线程将避免黑屏。

public class Activity2 extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        new Thread(new Runnable() { 
            public void run(){
               //All your heavy stuff here!!!
            }
        }).start();
    }
}

注意:您可能还更喜欢 AsyncTask,您可以在这里看到实现您想要的不同方式之间的一个很好的比较:

http://techtej.blogspot.be/2011/03/android-thread-constructspart-4.html

于 2013-05-26T06:05:25.883 回答
0

ASyncTask就是你要找的。实施起来应该不难。

于 2013-05-26T06:11:25.440 回答