Android:如何从 Activity Activity 中关闭前台 Activity ?

标签 android android-activity subactivity

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

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

 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) 的方法,我将不胜感激。

最佳答案

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

如果这是 Not Acceptable ,我认为您有两个主要的行动方案:

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

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

关于Android:如何从 Activity Activity 中关闭前台 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487125/

相关文章:

android - 如何强制主 Activity 等待 Android 中的子 Activity?

java - 不应重新分配 Android 小部件和变量

android - java.lang.IllegalStateException : Expected a string but was BEGIN_OBJECT at line 1 column 2 path $ 错误

android - TextWatcher 用于多个 EditText

java - 使用 Google Admob 自动滚动 fragment 和 Activity ?

Android onActivityResult 始终为 0

android - 在 Windows 7 中创建 war 文件

android - 如何查看特定播放列表的 youtube 列表?

android - 从服务启动 Activity 花费的时间太长