【问题标题】:How can you generate a loading screen in Android?如何在 Android 中生成加载屏幕?
【发布时间】:2011-11-03 03:53:33
【问题描述】:

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

我已经尝试过 Android 开发网站上的 progressDialog,但它没有做任何事情,因为 Activity 在显示任何内容之前完成加载,所以当它出现时,没有什么可加载的。

【问题讨论】:

    标签: android android-asynctask loading progressdialog


    【解决方案1】:

    首先启动新活动,然后调用异步任务文件。当你关闭旧活动时,这将启动新活动。在新活动的 Oncreate 中调用如下所示的异步任务类

    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();
        }
    }
    

    【讨论】:

    • 这个 AsyncTask 创造了奇迹,我只是在第一个列表项加载时应用了一些通用内容,然后从 postExecute 中实际生成的内容中检索它
    【解决方案2】:

    作为建议,请尝试减少第二个活动的 onCreate 方法中的代码。让它像调用 super 和设置内容视图一样简单。这将调出以 XML 设计的 UI。

    将其余代码移至您的 onResume 方法。 下一步,如果您要从 DB 或外部获取一些数据,请尝试使用 thread (how to do it & what is it) 或 async task

    【讨论】:

    • 好吧,我使用了一些 startActivityForResults,这会导致它在每次返回时重新加载吗?
    • 不,如果你使用startActivtyForResult,你需要实现onActivtyResult(..)并且上下文从这里返回..它不会重新加载活动
    猜你喜欢
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2011-08-03
    相关资源
    最近更新 更多