我正在尝试在两个应用程序之间共享数据..首先我想将文件保存到 SD 卡然后读取它..但是这个解决方案不起作用..所以如果有办法发送ArrayList
一个Object
实现Parcelable
..
还有什么其他方法可以实现这一目标?
注意:
活动不在同一个应用程序中。
ArrayList
是一个Serializable
类,Intent
因此只要您的自定义对象也是Serializable
. 它看起来像:
Intent intent = new Intent(YourActivity.this, YourReceiverActivity.class);
intent.putExtra("YourArrayList", new ArrayList<YourSerializableObject>());
startActivity(intent);
然后检索它:
Intent intent = getIntent();
ArrayList<YourSerializableObject> list =
(ArrayList<YourSerializableObject>)intent.getSerializableExtra("YourArrayList");
对于要成为的对象Serializable
,所有包含的成员也必须是Serializable
。
您可以使用带有静态成员类型 ArrayList<CustomObject> 的静态类(例如称为 DataChannel),然后使用静态 get/set 在活动之间传递对象。
我不确定为什么没有人提到这一点,但你最好的选择是 BY FAR SQLite。它比任何传递的对象都高效得多,因为相比之下它不会占用任何内存。
您可以使用以下方法将对象数组作为额外内容存储在 Intent 中:
public Intent putExtra (String name, Parcelable[] value)
您必须配置您的其他应用程序以接收您的自定义 URI 的 Intent。