无法显示主要活动

时间:2011-07-19 05:58:36

标签: android android-activity

我有这样的代码

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); 
setContentView(R.layout.main);
boolean autoLogin = false;
autoLogin = checkAutoLogin();
if(autoLogin) {
    showProgress();// Show progress dialog
    if(login(savedUserName,savedPassword)) {
        //call  home activity using startActivity();
    }
    //  login(savedUserName,savedPassword), this function access the server and return true if username and password correct- this works properly 
}

}

现在问题是,在home activity的身份验证时间内,我显示main activity而不显示progress dialog及其login(savedUserName,savedPassword)(此功能需要花费可数的时间,因为服务器认证)功能,我只得到一个黑屏,在这段时间我想要显示主要活动和进度对话框。  
注意:如果我点击home activity中的后退按钮,我可以main activityprogress dialog

3 个答案:

答案 0 :(得分:1)

你不应该在UI线程上进行网络操作,你可以在单独的线程中进行,然后你可以使用Handler对象调用home活​​动,它将解决你的问题

答案 1 :(得分:0)

根据您的showProgress()方法所包含的内容,我猜测showProgress会运行,发现没有活动login尝试发生,并自行解散,然后{{1调用方法。

您要做的是异步启动login(),然后启动进度对话框,检查login()是否已完成。

这只是我能看到你的代码的猜测。

你可以发布更多内容吗?

尝试将一些 logcat 登录到login()方法,以查看它是否实际上正在快速创建和销毁。

答案 2 :(得分:0)

在AsynchTask中完成你的时间消耗任务。 this类的设计完全适用于您正在寻找的工作类型。使用doInBackground()方法完成任务,而onPreExecute则可以显示进度对话框。