Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在活动之间切换时显示进度条_Android_Android Activity_Progress Bar - Fatal编程技术网

Android 如何在活动之间切换时显示进度条

Android 如何在活动之间切换时显示进度条,android,android-activity,progress-bar,Android,Android Activity,Progress Bar,我有两个活动活动1和活动2。 单击按钮时,我正在从Activity1切换到Activity2。但由于网速较慢,Activity2需要花费大量时间加载。在加载活动之前,将显示空屏幕 我想显示一个进度条,而不是黑屏,当Activity2准备就绪时,关闭进度条,而不会让用户感到沮丧 我不知道该怎么做,也不知道该怎么开始。我是android新手。 请帮助我提出建议,或请分享任何有关此的链接 提前谢谢 通过加载屏幕(不确定的进度条或圆圈可以)或更好的方式启动活动2:缓存数据,并将繁重的内容放在线程上。 在

我有两个活动活动1和活动2。 单击按钮时,我正在从Activity1切换到Activity2。但由于网速较慢,Activity2需要花费大量时间加载。在加载活动之前,将显示空屏幕

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

我不知道该怎么做,也不知道该怎么开始。我是android新手。 请帮助我提出建议,或请分享任何有关此的链接


提前谢谢

通过加载屏幕(不确定的进度条或圆圈可以)或更好的方式启动活动2:缓存数据,并将繁重的内容放在线程上。 在线程结束时,移除progressbar并显示数据

考虑到这一点,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
是您需要的。它应该不难实现。

您可以在活动2的onCreate中使用。在
onPreExecute
中显示
progressdialog
。在
onDoinBackground
中完成下载。在
onPostExecute
中完成后,隐藏
progressdialog
并在UI中显示内容

例如代码

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
         }
     }
YourTask扩展AsyncTask的私有类{
受保护的void onPreExecute(){
//在此处显示进度对话框
}
受保护的ContentType doInBackground(){
//下载内容
返回内容;
}
受保护的void onPostExecute(ContentType内容){
//隐藏进度对话框
//显示内容
}
}

我会更专注于修复活动2。使用Traceview和类似的技术来确定是什么导致它花费如此长的时间。@Commonware,Activity2加载google地图。地图加载需要时间。所以,我想显示进度条,直到地图完全加载!!那是我的主意。但我不知道如何实现它!!我不知道这是可能的,只是因为你不知道什么时候“地图已经满了”。这个想法很好!!你可以分享任何关于这个的链接吗!!谢谢您能告诉导入用于ContentType..吗?什么是ContentType?