Я создал BootReceiver, который создает новое действие и открывает диалоговое окно Alert.
После нажатия OK / Отмена это действие все еще не закрыто полностью. Я вижу то же самое в кнопке Window List и вижу диалог Alert из списка Window.
Есть идеи, что может быть не так?
Мой код выглядит так, как показано ниже, вызывая финиш после OK / Отмена с помощью кнопки void onCreate (Bundle saveInstanceState) {
super.onCreate (savedInstanceState); * +1005 *
WindowManager.LayoutParams winParams;
getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
// Windows Attributes
requestWindowFeature(Window.FEATURE_NO_TITLE);
winParams = getWindow().getAttributes();
winParams.flags |= (WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().setAttributes(winParams);
// Show Popup
popup = new AlertDialog.Builder(this)
.setCancelable(true)
.setPositiveButton("agree", new OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
if( DEBUG ) Log.d(LOG_TAG, " AGREE CLICKED" );
finish();}})
.setNegativeButton("disagree", new OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
if( DEBUG ) Log.d(LOG_TAG, " DISAGREE CLICKED" );
finish();}})
.setOnCancelListener(
new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
finish();
}});
popup.setIcon(android.R.drawable.ic_dialog_alert);
popup.setTitle("title");
popup.setMessage("Message");
dialog = popup.create();
winParams = dialog.getWindow().getAttributes();
winParams.flags |= (WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
dialog.getWindow().setAttributes(winParams);
dialog.setOnDismissListener(AlwaysReqWhenPS);
dialog.setOnKeyListener(this);
dialog.show();
}
protected void onStop() {
if( DEBUG ) Log.d(LOG_TAG, " OnStop Called" );
super.onStop();
}
public void onDestroy() {
if( DEBUG ) Log.d(LOG_TAG, " onDestroy Called" );
super.onDestroy();
}
public void onPause() {
if( DEBUG ) Log.d(LOG_TAG, " onPause Called" );
super.onPause();
}