仅在打开应用程序时显示警报
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();
}
}
有没有办法让提醒只在应用程序打开时出现?我在我的 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();
}
}