我正在尝试实现将加载所有活动的ProgressDialog。 所以我将这一行添加到onCreate()方法:
pd = ProgressDialog.show(this, "Waiting...", "Please wait five seconds...");
但是在所有内容加载后开始加载,并且它不会停止,因为我不知道在哪里添加行:
pd,dismiss();
因此,有任何内置方法在活动显示时调用(如在iOS中 - viewDidAppear)和另一个内置方法,当活动加载完毕并且所有内容都已加载时调用?
答案 0 :(得分:0)
什么意思加载所有活动?我认为你走错了路。你不能加载所有的活动,但是你可以调用一个intent来启动一个活动。在这种情况下,活动lifeCycle出现在图片中。
请看看这个: http://www.mikestratton.net/assets/android_activity_lifecycle.png
如果您想要我们progressdialog,并在后台线程上加载任何内容,请阅读: progressDialog in AsyncTask
在Android中处理对话框的好例子: http://examples.javacodegeeks.com/android/core/ui/progressdialog/android-progressdialog-example/ 请不要尝试加载所有活动。永远不要打电话给新的MyActivity(); NEVER
答案 1 :(得分:0)
"我从网络"
获取内容的活动我从你的评论中得到这一行,这意味着你需要在那个时候获取一些数据,你需要显示ProgressDialog。
如果这是正确的,那么您可能会将AsyncTask
用于webservice
因此,您不需要显示onCreate方法的对话框。您需要从AsyncTask onPreExecute()
方法显示ProgressDialog。
完成后,您需要cancel dialog
方法中的onPostExecute
修改强> AsyncTask参考http://developer.android.com/reference/android/os/AsyncTask.html 这是完美的教程。
答案 2 :(得分:-1)
您可以在onStop()
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
pd.dismiss();
}
或者您可以在onDestroy()
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
pd.dismiss();
}