-
Notifications
You must be signed in to change notification settings - Fork 10
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);
}
}