我有两个活动 Activity1 和 Activity2。单击按钮时,我正在从 Activity1 切换到 Activity2。但是由于网速慢,Activity2 需要很长时间才能加载。在加载活动之前显示空屏幕。
而不是黑屏,我想显示一个进度条,当 Activity2 准备好时,关闭进度条而不会让用户感到沮丧。
我不知道如何执行此操作或启动此操作。我是安卓新手。请通过提出想法来帮助我,或者请分享有关此的任何链接!
提前致谢!!
我有两个活动 Activity1 和 Activity2。单击按钮时,我正在从 Activity1 切换到 Activity2。但是由于网速慢,Activity2 需要很长时间才能加载。在加载活动之前显示空屏幕。
而不是黑屏,我想显示一个进度条,当 Activity2 准备好时,关闭进度条而不会让用户感到沮丧。
我不知道如何执行此操作或启动此操作。我是安卓新手。请通过提出想法来帮助我,或者请分享有关此的任何链接!
提前致谢!!
您可以在活动2 的 onCreate 中使用AsyncTask。在完成下载。完成后隐藏并在 UI 中显示内容。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
}
}
使用加载屏幕(不确定的进度条或圆圈很好)或更好的方式启动 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
ASyncTask
就是你要找的。实施起来应该不难。