我正在尝试在倒数计时器结束时显示警告对话框,并通过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);
但是,这仍然只在活动位于前面时才有效。
答案 0 :(得分:2)
我建议使用 AlarmManager 执行此任务。否则你必须知道处理唤醒锁定,因此设备不会进入睡眠状态,如果经过的时间太长,那么你将不必要地耗尽电量。
使用 AlarmManager 来触发Intent并在你的应用中接收它对我来说效果更好。确保在活动进入 onPause()时设置闹钟,并在 onResume()时取消设置闹钟。您还可以检查使用Theme.Dialog启动活动是否更适合您的需求,以及如果您丢失了活动背景,您将无法显示常规对话框。
希望这有帮助。