#android
#Android
Вопрос:
вот мой код
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AlertOn();
}
private void AlertOn() {
alertbox = new AlertDialog.Builder(this).create();
alertbox.setIcon(R.drawable.icon);
alertbox.setTitle(getIntent().getStringExtra("Title"));
alertbox.setMessage(getIntent().getStringExtra("Message"));
alertbox.setButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, int arg1) {
dialog.dismiss();
Intent startActivity = new Intent();
startActivity.setClass(getApplicationContext(), moontech.fax.mFax.class);
startActivity.setAction(NotificationAlert.class.getName());
startActivity.setFlags(
Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
startActivity(startActivity);
finish();
}
});
alertbox.show();
}
и в файле manifeast объявляем
<activity android:name="com.demo.notificationalert"
android:theme="@android:style/Theme.Dialog"
android:screenOrientation="portrait" />
но когда отображается диалоговое окно и без нажатия ok, я использую «Назад с устройства», тогда это действие не завершено.
Комментарии:
1. Вы рассматривали возможность переопределения
onPause()
? В нем вы можете вызватьfinish()
, оно будет вызвано, как только вы нажмете кнопку «Назад».
Ответ №1:
По умолчанию, когда отображается диалоговое окно и вы нажимаете кнопку «Назад», оно закрывает ваше диалоговое окно. Вы можете переопределить метод onKeyDown в своем activity следующим образом:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
}
return super.onKeyDown(keyCode, event);
}
На этом ваша активность будет завершена. Надеюсь, это поможет.