首页 > 解决方案 > 如何从不同的android应用程序传递一个serializableExtra?

问题描述

我正在尝试将 SerializableExtra 从应用程序发送到另一个应用程序。我用

resultIntent.putExtra("thing", fc);

并在接收应用程序中:

Thing theThing = (Thing) data.getSerializableExtra("thing");

但由于应用程序的名称不同,我收到以下错误:

Java.lang.RuntimeException: Parcelable encountered ClassNotFoundException reading a Serializable object (name = com.test.senderapp.Thing)

而且我无法修改发件人应用程序,我需要找到一种方法使其仅控制接收意图的应用程序。

谢谢

标签: javaandroidandroid-intentserializable

解决方案


使用内容提供者来实现这一点。 https://developer.android.com/guide/topics/providers/content-providers

我们在讨论这个问题时非常相似;我们希望键盘可以与另一个应用程序共享数据,并将其与其他功能组合使用。

目标是您定义要公开的数据以及其他应用程序可以使用的数据,类似于联系人的应用程序所做的事情;您可以访问 CursorLoader 以获取所有用户的联系人。

另一方面,作为第二种解决方案,您可以让您的第二个应用程序接收一个字符串并将对象作为 JSON 发送;但如果您要继续添加更多对象或总结其他应用程序,我更喜欢第一个。


推荐阅读