2016-04-12 6 views
0

Ich habe in der Lage OnClickListeners auf Ansichten zu finden:Kann nicht Aspekt für Android Dialoge erstellen AspectJ mit

@After("execution(* android.widget.AdapterView.OnItemClickListener.onItemClick(..))") 

und Veranstaltungen auf Aktivitäten:

@After("execution(* android.app.Activity.onResume(..))") 

Aber aus irgendeinem Grund kann ich‘ Es scheint, als ob Sie in AlertDialog, Dialog oder sogar Dialog.Builder etwas finden. Ich möchte jederzeit einen Hinweis hinzufügen, wenn ein Dialog angezeigt wird.

Hat nicht funktioniert:

@After("execution(* android...AlertDialog.show(..))") 

Hat nicht funktioniert:

@After("execution(* android.app.ProgressDialog.show(..))") 

Hat nicht funktioniert:

@After("execution(* *..DialogInterface+.*(..) || * *..Dialog+.*(..))") 

Ich dachte, ich würde, wenn ich schreiben könnte Aspekte Für Ansichten und Aktivitäten könnte ich dasselbe für AlertDialogs tun. Ich denke immer noch, dass es mein begrenztes Wissen über AspectJ ist, das mich daran hindert, hier Glück zu haben?

Antwort

0

Das Problem ist, dass Aspekte nur auf Code angewendet werden können, den Sie geschrieben haben. In der Tat kann es auf Ihre eigenen Aktivitäten und OnItemClickListener-Implementierungen angewendet werden, aber wenn Sie selbst keine Unterklasse von Dialog erstellen, verwendet es die Klasse, die auf dem Gerät des Benutzers verfügbar ist, auf die Ihre Ratschläge nicht angewendet werden.

Verwandte Themen