gpt4 book ai didi

android - 如何关闭对话框主题 Activity

转载 作者:行者123 更新时间:2023-11-29 01:39:14 29 4
gpt4 key购买 nike

我有一个对话框主题的 Activity ,它只包含一个 ProgressBar 和一个 TextView。该 Activity 的代码如下所示:

public class ProgressDialog extends Activity{

TextView msg;
ProgressBar progressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.progress_dialog);

msg = (TextView)findViewById(R.id.progressMsg);
progressBar = (ProgressBar)findViewById(R.id.progressBar);
Intent intent = getIntent();
String msgString = intent.getStringExtra("msg");
msg.setText(msgString);

}

}

这表示我将在我的项目中使用的进度条对话框,以便我在所有版本的 Android 上都具有相同的外观和易于定制的对话框。

问题是,如果我在 onPreExecute() 方法中启动此 Activity 作为正常 Activity ,我如何才能从 AsyncTask onPostExecute() 方法完成此 Activity 。 AsyncTask 在另一个 Activity 中被调用。我尝试了不同的事情,但没有成功。我试过:

  • 模拟后退按钮
  • 使用 fragmentManager 和 activityManager
  • 在 Activity 中实现调用 finish() 方法的公共(public)方法

求助!如果您需要一些额外的代码,请告诉我!

最好的问候!

最佳答案

在调用 Activity 中按照这些行编写一个方法并调用它来删除对话框:

private void removeDialog() {
Intent removeDialogIntent = new Intent(this, ProgressDialogActivity.class).setAction(ACTION_CLOSE_DIALOG);
startActivity(removeDialogIntent);
}

并且在 progressDialogActivity 中确保处理它:

@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);

if (ACTION_CLOSE_DIALOG.equals(intent.getAction())){
finish();
}
}

您可以从服务或任何其他上下文中停止 Activity ,只需将相关标志添加到 Intent 即可。

话虽如此,我个人会使用 DialogFramgent 并避免所有这些困惑,为什么您需要对话 Activity ...?

关于android - 如何关闭对话框主题 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25824288/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com