0

我想在 aspectj 中为 android 设备提供一个事件。如果我在代码中覆盖 onBackPressed() 并且我在 aspectj 中使用相同的内容,例如“pointcut onBackPressed() : execution(* onBackPressed());” 我要回来参加活动。但是大部分屏幕不需要处理设备返回键,在这种情况下不会覆盖 onBackPressed()。在这种情况下,我没有收到任何有关设备返回键的事件。
aspectj 中是否存在任何用于处理 android 设备返回键的事件?

4

2 回答 2

0

我仍然不知道我是否正确..但看看这是否可以帮助你..我没有 AOP 经验

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        //Back key event suppose to handled here
    }
    return super.onKeyDown(keyCode, event);
}
于 2013-05-23T05:56:10.603 回答
0

为了拦截execution3rd 方库中的连接点,您有三个选项:

  • 从源代码(如果可用)重新编译库并将您的方面编织到其中。
  • 对 JAR 中的类文件执行二进制编织,创建新的编织版本,然后重新打包 JAR 并替换原始版本。
  • 在类加载期间使用 LTW 并编织库的类。

无论哪种方式,您都需要控制要编织的代码。否则,唯一的后备是使用call切入点来编织调用者而不是被调用者。但这仅适用于由您控制的代码进行的调用,不适用于从第三方代码(例如库内部)进行的调用。

于 2013-05-27T19:11:27.233 回答