我有两个活动Activity1和Activity2。 单击按钮时,我将从Activity1切换到Activity2。但由于网速较慢,Activity2需要花费大量时间才能加载。显示空屏幕,直到加载活动。
我想显示一个进度条而不是黑屏,而当Activity2准备就绪时,则关闭进度条而不会让用户感到沮丧。
我不知道如何做到这一点或开始这个。我是android的新手。 请通过提出建议帮助我,或者请分享关于此的任何链接!!
提前致谢!!
答案 0 :(得分:1)
您可以在活动的onCreate中使用AsyncTask。onPreExecute
中显示progressdialog
。在onDoinBackground
完成下载。在onPostExecute
完成后隐藏progressdialog
并在用户界面中显示内容。
示例代码
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
}
}
答案 1 :(得分: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
答案 2 :(得分:0)
ASyncTask
正是您正在寻找的。实施起来应该不难。