关闭onCreate上的活动

cam*_*aca 9 android android-activity

我正在打开一个Activity使用这个:

startActivity(new Intent(Parent.this, Child.class));
Run Code Online (Sandbox Code Playgroud)

在孩子身上,我在onCreate函数上有这个代码(当然if包含的不仅仅是true):

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (true) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setPositiveButton("OK", null);
        builder.setTitle("Error");
        builder.setMessage("Connection error, please try later.")
            .show();
        finishActivity(0);
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么活动没有结束?我收到警报框,但是我必须点击"后退"按钮才能返回.

Mud*_*sir 10

尝试使用finish()方法关闭Activity.


Pat*_*oos 7

在创建中执行此操作

if (true) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setPositiveButton("OK", null)
           .setTitle("Error")
           .setMessage("Connection error, please try later.")
           .setCancelable(false)
           .setPositiveButton("_Yes",
                  new DialogInterface.OnClickListener() {
                      public void onClick(DialogInterface dialog, int id) {
                          finish();
                  }
           })
           .show();
    return;
}
Run Code Online (Sandbox Code Playgroud)

并在您的AndroidManifest.xml中执行以下操作:

<activity class="MyDialogActivity" android:theme="@android:style/Theme.Dialog"/>
Run Code Online (Sandbox Code Playgroud)

现在,您将启动Activity并显示Dialog.感觉就像只有用户的对话框.显示了一个活动,但它在对话框后面.所以效果还可以.否则,您可以在活动本身(setcontentview)中创建对话框.