ActivityLifecycleCallbacks
2017-06-12 11:12
253 查看
在android.app; Application中ActivityLifecycleCallbacks 对activity的生命周期事件进行集中处理
public interface ActivityLifecycleCallbacks { void onActivityCreated(Activity activity, Bundle savedInstanceState); void onActivityStarted(Activity activity); void onActivityResumed(Activity activity); void onActivityPaused(Activity activity); void onActivityStopped(Activity activity); void onActivitySaveInstanceState(Activity activity, Bundle outState); void onActivityDestroyed(Activity activity); }在Application中注册ActivityLifecycleCallbacks接口
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { LogUtils.i("[--------"+getFragmentNameTAG(activity)+"--------onActivityCreated--------]"); addActivity(activity); //把activity 添加Activity到堆栈 } @Override public void onActivityStarted(Activity activity) { LogUtils.i("[--------"+activity.getPackageName()+"--------onActivityStarted--------]"); } @Override public void onActivityResumed(Activity activity) { LogUtils.i("[--------"+getFragmentNameTAG(activity)+"--------onActivityResumed--------]"); } @Override public void onActivityPaused(Activity activity) { LogUtils.i("[--------"+getFragmentNameTAG(activity)+"--------onActivityPaused--------]"); } @Override public void onActivityStopped(Activity activity) { LogUtils.i("[--------"+getFragmentNameTAG(activity)+"--------onActivityStopped--------]"); } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { LogUtils.i("[--------"+getFragmentNameTAG(activity)+"--------onActivitySaveInstanceState--------]"); } @Override public void onActivityDestroyed(Activity activity) { LogUtils.i("[--------"+getFragmentNameTAG(activity)+"--------onActivityDestroyed--------]"); removeActivity(activity); } });让activity实现自定义接口;
public interface IActivity { @LayoutRes int getContentViewLayoutRes(); void initData(); }在ActivityLifecycleCallbacks中onActivityCreated方法中给activity设置布局文件if (activity instanceof IActivity){activity.setContentView(((IActivity) activity).getContentViewLayoutRes());((IActivity)activity).initData();}else if(activity instanceof VActivity){...}在activity中实现butterknife绑定public class ButterKnifeSerializable implements Serializable {private Unbinder unbinder;public void setUnbinder(Unbinder unbinder){this.unbinder = unbinder;}public Unbinder getUnbinder(){return unbinder;}}
在ActivityLifecycleCallbacks中onActivityCreated方法中实现butterknife绑定
ButterKnifeSerializable bean = new ButterKnifeSerializable();Unbinder unbinder = ButterKnife.bind(activity);bean.setUnbinder(unbinder);activity.getIntent().putExtra("ButterKnifeSerializable", bean);
在ActivityLifecycleCallbacks中onActivityDestroyed方法中实现butterknife解绑
ButterKnifeSerializable bean = (ButterKnifeSerializable) activity.getIntent().getSerializableExtra("ButterKnifeSerializable");bean.getUnbinder().unbind();
相关文章推荐
- app整个应用生命周期管理ActivityLifecycleCallbacks,registerActivityLifecycleCallbacks
- ActivityLifecycleCallbacks 判断APP是否在前台
- ActivityLifecycleCallbacks 的简单使用
- 关于Activity、Fragment、ActivityLifecycleCallbacks、FragmentLifecycleCallbacks的生命周期方法执行顺序
- ActivityLifecycleCallbacks
- ActivityLifecycleCallbacks 对Activity的生命周期事件进行集中处理
- Kotlin项目Application registerActivityLifecycleCallbacks 方法踩坑
- registerActivityLifecycleCallbacks 的用途
- Android ActivityLifecycleCallbacks 分析
- ActivityLifecycleCallbacks
- 转:Android -- ActivityLifeCycleCallbacks
- ActivityLifecycleCallbacks
- [置顶] 利用ActivityLifecycleCallBack监控app前后台状态切换,实现手势密码即九宫格解锁
- ActivityLifecycleCallbacks 实现app中所有Activity实例查找
- 适应6.0,全局Dialog终极解决方案 Application.ActivityLifecycleCallbacks
- Android 集中处理Activity的生命周期事件: Application.ActivityLifecycleCallbacks
- Activity生命周期监听接口:ActivityLifecycleCallbacks
- 用ActivityLifecycleCallbacks 判断前后台运行
- 详解ActivityLifecycleCallbacks
- ActivityLifecycleCallbacks