其他分享
首页 > 其他分享> > android – 活动拦截器

android – 活动拦截器

作者:互联网

android中是否有任何方法可以拦截活动方法调用(只是标准的调用,比如“onStart.onCreate”)?
我的应用程序中的每个活动都必须包含许多功能,并且(因为它使用不同类型的活动(列表,首选项)),唯一的方法是为每个活动类创建自定义扩展,糟透了:(

附:我使用roboguice,但由于Dalvik不支持运行时的代码生成,我想它没有多大帮助.

P.S.S.我想过使用AspectJ,但这太麻烦了,因为它需要很多复杂功能(ant的build.xml和所有垃圾)

解决方法:

您可以将所有重复性工作委托给另一个嵌入其他活动的类.这样就可以限制重复工作来创建这个对象并调用它的onCreate,onDestroy方法.

class MyActivityDelegate {
    MyActivityDelegate(Activity a) {}

    public void onCreate(Bundle savedInstanceState) {}
    public void onDestroy() {}
}

class MyActivity extends ListActivity {
    MyActivityDelegate commonStuff;

    public MyActivity() {
        commonStuff = MyActivityDelegate(this);
    }

    public onCreate(Bundle savedInstanceState) {
        commonStuff.onCreate(savedInstanceState);
        // ...
    }
}

这样可以最大限度地减少麻烦,并将所有常用方法和活动成员分解.另一种方法是子类化所有API的XXXActivty类:(

标签:android,guice,roboguice
来源: https://codeday.me/bug/20190526/1157133.html