Закрытие активности на onCreate - PullRequest
9 голосов
/ 11 ноября 2010

Я открываю Activity, используя это:

startActivity(new Intent(Parent.this, Child.class));

А у ребенка, у меня есть этот код для функции 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;
    }
}

Почему деятельность не закрывается? Я получаю окно с предупреждением, но затем мне нужно нажать кнопку «назад», чтобы вернуться.

Ответы [ 2 ]

10 голосов
/ 11 ноября 2010

Попробуйте использовать метод finish () , чтобы закрыть действие.

7 голосов
/ 11 ноября 2010

сделать это при создании

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;
}

и в вашем AndroidManifest.xml сделайте следующее:

<activity class="MyDialogActivity" android:theme="@android:style/Theme.Dialog"/>

Теперь ваша активность начнется и покажет диалог. Такое ощущение, что есть только диалог для пользователя. Отображается активность, но она находится за диалогом. Так что эффект в порядке. В противном случае вы можете создать диалог в самом действии (setcontentview).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...