我正在将 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 中设置的侦听器。有没有办法捕捉到这一点?