我有一个持续运行的计时器。当我按下BACK按钮时,我做了一个对话框,出现在那里你可以退出那个意图,或者返回并使用BACK按钮停止计时器。好吧,如果我点击contimnue,onResume()方法使计时器继续,它运行良好。但是,如果我在屏幕上显示对话框时按下后退按钮,我希望计时器继续运行,就像按下对话框上的继续一样。但相反,我按下后退按钮没有任何反应,计时器停止,这对我不利,因为我的一些方法只有在计时器运行或对话框停止时才有效。但如果没有对话框并且计时器停止,则可能发生许多潜在错误。那么当屏幕上出现对话框时,如何阻止用户按下后退按钮? 我试过这样的事情:
if ((keycode==back) && a=0 ) {... a=1 , onPuase()} // dialog comes in onPause() just happened
else ((keycode==back) && a=1 ) {... a=0, onResume()} //I want onResume() to happen here
但这并不好。对话框出现在第一个后退按钮上然后它消失在第二个后退(这里没有任何反应)。计时器仍在这里停止,但第三个后退按钮启动计时器。所以有一个不必要的背部会导致麻烦,因为使用者不会知道他们必须再次按下它...
答案 0 :(得分:0)
如果您希望在显示对话框时用户按下BACK时收到通知,请使用OnDismissListener
答案 1 :(得分:0)
一些建议:
答案 2 :(得分:0)
在DialogClass中实现OnDismissListener
并覆盖OnDismiss方法
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
//you can control back button from here
}