如何在Android中生成加载屏幕?

时间:2011-11-03 03:53:33

标签: android android-asynctask loading progressdialog

问题是我来自另一个Activity,当我尝试转到新的Activity时,它只是旧的一个,直到显示新的,所以我试图让它去新的立即活动,然后在获取内容时调出加载屏幕。 (内容来自网站或内部数据库)。

我已经尝试过Android开发网站上的progressDialog,但它没有做任何事情,因为Activity在显示任何内容之前完成加载,所以随着时间的推移显示,没有任何东西可以加载。

2 个答案:

答案 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方法。 下一步,如果您要从数据库或外部提取一些数据,请尝试使用threadhow to do it&amp; what is it)或async task