我创建了一个与服务器异步通信的应用程序。当应用程序发出服务器请求时,会创建一个带有“正在加载”通知的新对话框(活动)。主活动实现了处理服务器响应的方法,当主活动收到来自服务器的回答时,我想关闭前台活动。
通知对话框的创建方式如下:
private void showServerRequestDialog(String actionLabel){
Intent intent = new Intent(this, DlgServerRequest.class);
intent.putExtra(SERVER_REQUEST_ACTION, actionLabel);
startActivity(intent);
}因此,当用户尝试进行身份验证时,将调用以下方法:
private void authenticateUser(String IMEI, String username, String password){
mEncoderConnection.authenticateRequest(IMEI, username, password);
showServerRequestDialog("Authenticating...");
}onAuthenticateResponse处理身份验证响应:
public void onAuthenticateResponse(AuthenticateResponse pkg) {
//code for response handling
//TODO: close ServerRequestDialog
}
}如果有人能建议一种在执行onAuthenticateUser()时关闭通知对话框(DlgServerRequest)的方法,我将不胜感激。
发布于 2009-09-28 14:03:27
为什么不使用真正的ProgressDialog或其他Dialog呢?然后,你所需要做的就是dismissDialog(),然后你就完成了?
如果这是不可接受的,我可以看到你有两个主要的行动方案:
DlgServerRequest类中,以便它可以finish()自身。DlgServerRequest类的实例放入静态数据成员中,以便您的主活动可以对其调用finish() <>G212
如果您选择选项#2,那么将静态数据成员null出来以避免内存泄漏非常重要。
https://stackoverflow.com/questions/1487125
复制相似问题