笔者最近在做某项功能,需要在 ActivityManagerService 里面,根据 Intent 传输的某些数据,对这些数据进行相应的处理 1.Intent 为第三方应用发起,无权修改第三方应用的发起阶段 2.避免在 framework.jar 里做过多修改,逻辑处理全部放 services.jar 3.Intent 发起的数据为 Parcelable 对象
随即就碰到了问题,在 Instrumentation.java 下获取是通过 ActivityManager.getService()直接获取 ActivityManagerService,并调用 startActivity 方法切入 services 进程,中间涉及到 Binder 通信,在 startActivity 之前,通过调试 framework.jar, Intent 下面是有数据的,但还没有转化为 mParcelData,一旦切入 ActivityManagerService 后,调试 services.jar ,发现虽然 mParcelData 不为 null,但通过 intent.getExtras().getMap()获取到的 Map 大小为 0,
很奇怪的是,当 Intent 的目标 Activity 起来时,Intent 所携带的数据又能正常读出来,而在 ActivityManagerService 却无法读到
请问各位老哥,在切换到 ActivityManagerService 后,这 Intent 里面带的数据,没有存放在 Intent 里面吗?改如何读取到这部分数据呢?