问题是我来自另一个Activity,当我尝试转到新的Activity时,它只是旧的一个,直到显示新的,所以我试图让它去新的立即活动,然后在获取内容时调出加载屏幕。 (内容来自网站或内部数据库)。
我已经尝试过Android开发网站上的progressDialog,但它没有做任何事情,因为Activity在显示任何内容之前完成加载,所以随着时间的推移显示,没有任何东西可以加载。
答案 0 :(得分:14)
首先首先启动新活动,然后调用异步任务文件..当您关闭旧活动时,这将启动新活动。在Oncreate of new activity中调用asyn任务类,如下所示
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(your layout here);
new GetTask(this).execute();
}
}
class GetTask extends AsyncTask<Object, Void, String> {
Context context;
GetTask(Context context, String userid) {
this.context = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
mDialog = new ProgressDialog(mContext);
mDialog.setMessage("Please wait...");
mDialog.show();
}
@Override
protected String doInBackground(Object... params) {
// here you can get the details from db or web and fetch it..
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
mDialog.dismiss();
}
}
答案 1 :(得分:0)
作为建议,请尝试减少第二个活动的onCreate方法中的代码。让它像调用超级和设置内容视图一样简单。这将打开用XML设计的UI。
将其余代码移至onResume方法。 下一步,如果您要从数据库或外部提取一些数据,请尝试使用thread(how to do it&amp; what is it)或async task。