活动onPause()时显示警报对话框

时间:2014-09-10 04:50:59

标签: android android-activity android-alertdialog android-handler

我正在尝试在倒数计时器结束时显示警告对话框,并通过onPause()方法在后台发送活动。

我做了一些研究,但找不到适合我需要的东西。

我试图通过使用处理程序实现这一点:

private Handler myHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                int aResponse = msg.getData().getInt("message");
                if (aResponse == DISPLAY_DLG) {
                    showStopAlarmDialog();
                }
            }
        };

在计时器的onFinish()方法

Message msgObj = myHandler.obtainMessage();
Bundle b = new Bundle();
b.putInt("message", DISPLAY_DLG);
msgObj.setData(b);
myHandler.sendMessage(msgObj);

但是,这仍然只在活动位于前面时才有效。

1 个答案:

答案 0 :(得分:2)

我建议使用 AlarmManager 执行此任务。否则你必须知道处理唤醒锁定,因此设备不会进入睡眠状态,如果经过的时间太长,那么你将不必要地耗尽电量。

使用 AlarmManager 来触发Intent并在你的应用中接收它对我来说效果更好。确保在活动进入 onPause()时设置闹钟,并在 onResume()时取消设置闹钟。您还可以检查使用Theme.Dialog启动活动是否更适合您的需求,以及如果您丢失了活动背景,您将无法显示常规对话框。

希望这有帮助。