2014-12-21 2 views
0

Как определить pointcut для метода, в который вводится ApsectJ?Pointcut для метода, введенного AspectJ

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

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

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

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

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

Спасибо!

+0

Каков реальный вопрос? Чего вы хотите достичь? У вас есть метод и pointcut. Возможно, вы также хотите определить совет, который фактически вводит некоторые функции во всех совпадениях совпадений, не так ли? Кстати, вы прочитали учебник AspectJ? – kriegaex

ответ

0

Вам нужно тело совета запустить enjected метода (например, Log.d("ATAG", "BACKK") возможно) внутри него, как это:

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

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