仅在打开应用程序时显示警报

Make an alert only appear when app is opened

有没有办法让提醒只在应用程序打开时出现?我在我的 MainActivity 中的 onStart() 中创建了一个警报,每当我回到应用程序中的 activity 时,它都会再次显示警报,这可能会让用户感到厌烦。或者有没有办法创建一个 "got it" 按钮然后关闭警报?这是我的代码:

protected void onStart() {
    super.onStart();
    new AlertDialog.Builder(this)
            .setTitle("Instructions")
            .setMessage("Hello! To begin, select a map from the list to train with. Make sure" +
                    " you are on the correct floor.")
            .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                }
            })
            .setIcon(R.drawable.ic_launcher)
            .show();

}

将该代码放入 activity 的 onCreate 方法中。检查 saveInstanceState 是否为空,如果是则显示您的 alertDialog

这是因为当另一个 activity 在您的 MainActivity 上出现时,您的 activity 会转到 OnPause()。 然后当你回到你的 MainActivity 时。系统调用 onStart() 再次。 See The activity life cycle

-第一个解决方案

public class TestActivity extends ActionBarActivity {

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

    if (savedInstanceState == null) {
        showAlertDialog();
    }
}

private void showAlertDialog() {
    // code to show alert dialog.
}

}

-第二种解法

public class TestActivity extends ActionBarActivity {

private static boolean isAlertDialogShownBefore = false;

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

    if (!isAlertDialogShownBefore) {
        showAlertDialog();
        isAlertDialogShownBefore = true;
    }
}

private void showAlertDialog() {
    // code to show alert dialog.
}

@Override
public void onBackPressed() {
    isAlertDialogShownBefore = false;
    super.onBackPressed();
}

}