【问题标题】:How to get Parceable Data from Intent in ActivityMangerService?如何从 ActivityManagerService 中的 Intent 获取 Parcelable 数据?
【发布时间】:2021-03-18 08:36:04
【问题描述】:

如:

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(...)后,我无法从funciotn字段(intent)获取任何数据,当intent的目标活动开始时,我可以获取Bundle中的所有数据。

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

【问题讨论】:

    标签: android android-intent android-activity android-source


    【解决方案1】:

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

    parcelData 的类只在你的应用进程中加载​​,而不是在 system_server 中。

    【讨论】:

    • 如果应用A向应用B发送一个Intent,它是否也在应用进程中?如果不在系统服务器中。包裹数据如何从A发送到B?
    • 您可以在您的常用代码或sdk中定义自定义的parcal类。并用你常用的代码或sdk编译A和B。
    猜你喜欢
    • 2018-11-13
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 2014-07-06
    • 1970-01-01
    相关资源
    最近更新 更多