Pointcut для метода, введенного с помощью AspectJ

Как я могу определить pointcut для метода, введенного с помощью ApsectJ?

Я ввел метод следующим образом, и он работает правильно:

public void com.moeActivity.onBackPressed() {
    super.onBackPressed();
    Log.d("ATAG", "BACKK");
}

Теперь я пытаюсь определить pointcut для обнаружения выполнения введенного метода, но это не удалось, я попробовал следующее:

pointcut eventActivity(): 
  execution(* com.moeActivity.onBackPressed(..));

Любая помощь будет оценена

Спасибо!


person mohammed ali    schedule 21.12.2014    source источник
comment
Каков реальный вопрос? Чего вы хотите достичь? У вас есть метод и pointcut. Вероятно, вы также хотите определить совет, который на самом деле вводит некоторую функциональность во всех точках соединения, не так ли? Кстати, вы читали учебник по AspectJ?   -  person kriegaex    schedule 21.12.2014


Ответы (1)


Вам нужен совет, чтобы запустить внедренный метод (например, Log.d("ATAG", "BACKK"), вероятно) внутри него, например:

public aspect LoggingAspect{
 after() : eventActivity() {
   Log.d("ATAG", "BACKK");
 } 
}

При этом совет after соединяется с именованным pointcut, называемым eventActivity, и запускает сквозное действие (т. е. Log.d("ATAG", "BACKK")) после super.onBackPressed(). Как говорит @kriegaex, вам нужно прочитать несколько примеров AspectJ, чтобы понять их эффективно.

person Hakan Özler    schedule 22.12.2014