Android重写onBackPressed()

是否有可能重写onBackPressed()只有一个活动?

在后退button上单击我想调用特定活动的对话框,但是在所有其他活动中,我希望它能像以前一样工作(转到以前的活动)。 。 。

谢谢你提前给我们

EDITED

谢谢大家对你的支持者,我已经拥有了像你告诉我的一切,但我的问题是,当我点击另一个Activity的button时,我正要去上一个Activity(我已经返回buttonOverriden的那个)认为这是行不通的,我认为这是覆盖onBackPressed()在整个应用程序,现在我明白了:D

是。 只能在一个Activity中用它覆盖它

 @Override public void onBackPressed() { // code here to show dialog super.onBackPressed(); // optional depending on your needs } 

不要把这个代码放在任何其他Activity

根据onBackPressed()的示例重写onBackPressed()方法,并移除对super.onBackPressed();的调用super.onBackPressed(); 如果您不希望执行默认操作(完成当前活动)。

你可以直接调用onBackPressed(),如果你想在后面的button之后显示一些活动,

 Intent intent = new Intent(ResetPinActivity.this, MenuActivity.class); startActivity(intent); finish(); 

为我工作。

只需在要显示对话框的活动中调用onBackPressed()方法,并在其中显示对话框。

最好和最通用的方式来控制音乐是创build一个母亲活动,其中你重写startActivity(Intent intent) – 在其中你把shouldPlay=true ,并onBackPressed() – 在其中你把shouldPlay = trueonStop – 在它你把条件mediaPlayer.stop与shouldPlay作为条件

那么,只要将母亲的活动延伸到其他所有的活动中,就不需要复制代码。

起初你必须考虑到,如果你的活动,我叫A扩展了另一个活动(B),并在两个

他们你想使用onbackpressed函数,那么你在B中的每个代码也运行在A中。 所以如果你想分开这些你应该分开它们。 这意味着A不应该延长B,那么你可以分别对他们进行反击。

尝试这个工作

  @Override public void onBackPressed(){ super.onBackPressed(); Intent i=new Intent(Intent.ACTION_MAIN); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); finish(); }