【发布时间】:2011-02-11 06:38:15
【问题描述】:
我创建了一个 BootReceiver,它创建一个新活动并弹出一个警报对话框。 按下 OK/Cancel 后,该活动仍未完全关闭。我可以在窗口列表按钮中看到相同的内容,并且可以从窗口列表中看到警报对话框。
有什么想法可能是错的吗?
我的代码如下所示,在 OK/Cancel 按钮后调用完成 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
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();
}
【问题讨论】:
-
窗口列表按钮是什么意思?警报对话框中的确定/取消按钮如何操作活动?
-
您不应在启动时启动活动。这令人沮丧并显着减慢了启动过程。
-
@Gopinath:窗口列表意味着我们可以看到以前打开的活动列表的位置可能是 HOME 按钮旁边的按钮。添加了代码sn-p。
标签: android android-activity android-alertdialog