我正在将 AspectJ 与 Android 一起使用,并且我成功地捕获View.setOnClickListener()
了对这方面的调用:
public aspect Test {
pointcut callPointcut(View view, OnClickListener listener) : call(void View.setOnClickListener(OnClickListener)) && target(view) && args(listener);
@SuppressAjWarnings // Exported advice
before(View view, OnClickListener listener) : callPointcut(view, listener)
{
Log.d("AspectJ", "Attempt to set onClick listener on view " + Integer.toHexString(view.getId()));
Log.d("AspectJ", "Aspect has executed.");
Log.d("AspectJ", listener.toString());
}
}
不幸的是,这不会捕获android:onClick
在布局 XML 中设置的侦听器。有没有办法捕捉到这一点?