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