Skip to content

AacActivity

yangchaojiang edited this page Dec 5, 2017 · 11 revisions

最基本的双向注入Activity与Fragment。无任何其他任何功能。建议使用AacActivity。

kotlin

@RequiresPresenter(MainPresenter::class)
class MainActivity : AacActivity<MainPresenter>() {
....省略代码
}

java

@RequiresPresenter(MainPresenter.class)
publicclass MainActivity extends AacActivity<MainPresenter>() {
....省略代码
}

##双向注入 在Activity的onCreate()一开始便会根据注解所填presenter的类实例化一个Presenter。并将自己注入给presenter。然后保持对presenter的引用。所以可在任意生命周期内使用getPresenter()来获取QuestionPresenter的引用。调用presenter的方法

##生命周期注入 对于比如友盟数据统计等SDK会要求生命周期统计(在所有Activity的onResume()``onPause()添加代码)。如果你想用一个顶级Activity来代理所有Activity。在这个框架里有众多类型Activity不太容易实现,还有第三方Activity等等。 解决方式 将你需要将执行的操作注入到每个Activity的生命周期中。 先自己实现ActivityLifecycleCallbacksWrapper这个类.在里面有Activity周期方法回调。 然后再您的Application 的onCreate()方法实现

 registerActivityLifecycleCallbacks(new ActivityCallback());

一旦你填写了你的ActivityLifecycleCallbacksWrapper的class。每个Activity都会并在相应的生命周期回调你的方法。 在你的ActivityLifecycleCallbacksWrapper中使用回调方法 来获取当前Actvity。 示例

public class ActivityCallback extends ActivityLifecycleCallbacksWrapper {

    @Override
    public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
        super.onActivityCreated(activity, savedInstanceState);
        AppCompatDelegate.setCompatVectorFromResourcesEnabled(false);
        Resources res = activity.getResources();
        Configuration config = new Configuration();
        config.setToDefaults();
        res.updateConfiguration(config, res.getDisplayMetrics());
    }

    @Override
    public void onActivityResumed(Activity activity) {
        super.onActivityResumed(activity);
    }
    @Override
    public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
        super.onActivitySaveInstanceState(activity, outState);
    }
 
    @Override
    public void onActivityDestroyed(Activity activity) {
        super.onActivityDestroyed(activity);
    }

}
Clone this wiki locally