首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:如何从活动活动中关闭前台活动?

Android:如何从活动活动中关闭前台活动?
EN

Stack Overflow用户
提问于 2009-09-28 13:43:40
回答 1查看 10.9K关注 0票数 2

我创建了一个与服务器异步通信的应用程序。当应用程序发出服务器请求时,会创建一个带有“正在加载”通知的新对话框(活动)。主活动实现了处理服务器响应的方法,当主活动收到来自服务器的回答时,我想关闭前台活动。

通知对话框的创建方式如下:

代码语言:javascript
复制
 private void showServerRequestDialog(String actionLabel){
    Intent intent = new Intent(this, DlgServerRequest.class);
    intent.putExtra(SERVER_REQUEST_ACTION, actionLabel);
    startActivity(intent);

}

因此,当用户尝试进行身份验证时,将调用以下方法:

代码语言:javascript
复制
private void authenticateUser(String IMEI, String username, String password){
    mEncoderConnection.authenticateRequest(IMEI, username, password);
    showServerRequestDialog("Authenticating...");
}

onAuthenticateResponse处理身份验证响应:

代码语言:javascript
复制
public void onAuthenticateResponse(AuthenticateResponse pkg) {
    //code for response handling
    //TODO: close ServerRequestDialog
    }
}

如果有人能建议一种在执行onAuthenticateUser()时关闭通知对话框(DlgServerRequest)的方法,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-09-28 14:03:27

为什么不使用真正的ProgressDialog或其他Dialog呢?然后,你所需要做的就是dismissDialog(),然后你就完成了?

如果这是不可接受的,我可以看到你有两个主要的行动方案:

  1. 将您的身份验证逻辑移动到DlgServerRequest类中,以便它可以finish()自身。
  2. 将您的DlgServerRequest类的实例放入静态数据成员中,以便您的主活动可以对其调用finish() <

>G212

如果您选择选项#2,那么将静态数据成员null出来以避免内存泄漏非常重要。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1487125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档