覆盖后退按钮

时间:2013-02-21 14:14:54

标签: java android override onkeydown

我有这个代码覆盖back按钮并使其像home按钮一样:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

它工作得很好。我的问题是,如果有一个位置我可以把它用于所有活动。现在我在每个活动中都复制了这个方法。

4 个答案:

答案 0 :(得分:3)

创建基本活动,在那里处理密钥并从基础活动继承所有其他活动。

答案 1 :(得分:3)

使用此代码创建BaseActivity(扩展Activity),然后让所有活动扩展BaseActivity,而不是Activity。

答案 2 :(得分:3)

创建自己的BaseActivity并使用Activity扩展它,覆盖那里。现在在整个应用程序中使用Activity使用BaseActivity。

这样的事情:

public abstract class BaseActivity extends Activity 
{
    final protected void onCreate(Bundle savedInstanceState)
   {
    super.onCreate(savedInstanceState);
    onCreate_Impl(savedInstanceState);
   }

   abstract protected void onCreate_Impl(Bundle savedInstanceState);
}    

您必须使用onCreate_Impl代替onCreate。

答案 3 :(得分:1)

你可以创建一些抽象类,它扩展了Activity并实现了这个方法。 然后在应用程序的每个Activity中将其子类化。一次只能扩展一个类,但在大多数情况下,最好让一些抽象的Activity类包含一组应用程序活动的常用函数。