android 应用动态加载机制2--资源加载机制和Activity生命周期管理(1)

本文讲述了在插件APK开发中如何通过反射实现Activity的生命周期管理,强调了使用that代替this的规范,并提及后续将探讨DLIntent、Fragment的使用以及服务和广播接收器的调起。
摘要由CSDN通过智能技术生成
  1. public final int addAssetPath(String path) {

  2. int res = addAssetPathNative(path);

  3. return res;

  4. }

其次是要实现那两个抽象方法

[java]  view plain  copy

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. @Override

  2. public AssetManager getAssets() {

  3. return mAssetManager == null ? super.getAssets() : mAssetManager;

  4. }

  5. @Override

  6. public Resources getResources() {

  7. return mResources == null ? super.getResources() : mResources;

  8. }

okay,问题搞定。这样一来,在apk中就可以通过R来访问资源了。

activity生命周期的管理


这是本文开头提到的另一个需要解决的难题。为什么会有这个问题,其实很好理解,apk被宿主程序调起以后,apk中的activity其实就是一个普通的对象,不具有activity的性质,因为系统启动activity是要做很多初始化工作的,而我们在应用层通过反射去启动activity是很难完成系统所做的初始化工作的,所以activity的大部分特性都无法使用包括activity的生命周期管理,这就需要我们自己去管理。谈到activity生命周期,其实就是那几个常见的方法:onCreate、onStart、onResume、onPause等,由于apk中的activity不是真正意义上的activity(没有在宿主程序中注册且没有完全初始化),所以这几个生命周期的方法系统就不会去自动调用了。针对此类问题,采用Fragment是一个不错的方法,Fragment从3.0引入,通过support-v4包,可以兼容3.0以下的android版本。Fragment既有类似于Activity的生命周期,又有类似于View的界面,将Fragment加入到Activity中,activity会自动管理Fra

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值