如何从 ActivityManagerService 中的 Intent 获取 Parcelable Data?

How to get Parceable Data from Intent in ActivityMangerService?

如:

Intent intent = new Intent("some action");
intent.putExtra("data",parcelData);//the parcelData is a Parceable Object
startActivity(intent);

通过调用StartActivity函数,在Instrumentation.java调用ActivityManger.getService().startActivity(...)之前,我可以从调试进度中获取所有包裹数据。

在我将 运行 转换为 ActivityMangerService.startActivity(...) 之后,当意图的目标 activity 启动时,我无法从函数字段 (intent) 获取任何数据, 我可以获取 Bundle 中的所有数据。

那么 ActivityMangerService 中发生了什么,为什么我无法从 services.jar 进度中读取任何数据???

如果您尝试从 ActivityManagerService 中的意图获取 parcel 对象,您可能会收到 ClassNotFoundException。

parcelData 的 class 仅在您的应用进程中加载​​,而不在 system_server 中加载。