在警告对话框中调用finish()时,Activity不会关闭

时间:2014-10-31 19:07:16

标签: java android activity-finish

我查看了之前有关此问题的Stack Overflow答案,但没有人解决这个问题,或者有人想出来但没有回复他们所做的事情。

这是我的典型贪睡按钮:

        //Add snooze button
        final Button snooze_button = (Button) findViewById(R.id.snooze_button);

        // Strings to Show In Dialog with Radio Buttons
        final CharSequence[] items = {"15 minutes","30 minutes","45 minutes","1 hour"};

        snooze_button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {

                AlertDialog.Builder builder=new AlertDialog.Builder(context);
                builder.setTitle("Snooze?");
                builder.setSingleChoiceItems(items,-1, new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        final String ONE_TIME = "onetime";
                        AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);

                        if("15 minutes".equals(items[which]))
                        {
                            intent.putExtra(ONE_TIME, Boolean.TRUE);
                            PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
                            am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 900000, pi);
                        }
                        else if("30 minutes".equals(items[which]))
                        {
                            PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
                            am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1800000, pi);
                        }
                        else if("45 minutes".equals(items[which]))
                        {
                            PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
                            am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 2700000, pi);
                        }
                        else if("1 hour".equals(items[which]))
                        {
                            PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
                            am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 3600000, pi);
                        }

                    }
                });
                builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        MyActivity.this.finish();
                    }
                });
                builder.show();

            }
        });

当用户参加活动时,用户可以单击“暂停”按钮并单击暂停时间。当他们选择一个选项时,他们点击确定。我希望能够在点击确定时关闭/关闭当前活动。

我试过

MyActivity.this.finish(); 

以上但它没有关闭活动。

我注意到的一件事是,它第一次不起作用,我重新开始相同的活动,但是如果我再次回到贪睡菜单然后点击确定,它会解除活动。不知道为什么会这样。

1 个答案:

答案 0 :(得分:2)

我接受了Blaze Tama的建议和我的onClick方法:

builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        Intent menu = new Intent(context, MyOtherActivity.class);
                        context.startActivity(menu);
                        ((Activity) context).finish();
                    }
                });

有效! :D我希望这可以帮助解决这个问题的人。