如果列表的大小太大,如何通过 android 中的意图在活动之间发送列表
How to send A List between activities through intents in android if the size of list is too big
通过意图将大量数据从一个 activity 发送到另一个的最佳方法是什么。我是否应该将数据分成少量并通过意图将它们一个一个发送。如果发送整个数据需要很多意图,例如大约 1000 个意图,它对 android 设备是否仍然有效。
进程是sender activity会拆分整个列表,然后在intent body中一个一个发送数据。在接收站点,receiver activity 将数据逐一收集并重建整个列表。这里的问题是如果发送整个列表需要太多的意图(大约 1000 个意图),它是否仍然可以在一般 android 设备上工作。它会导致任何性能问题吗?
Rather then sending big data through activities you should create a Data Controller from which you can get data. If you send data through activities you need lot of key name it will be confusing for you to track each data
class DataController{
static DataController controller;
Object data;
private DataController(){}
public static DataController getInstance(){
if(controller==null){
controller = new DataController();
}
return controller;
}
public void setData(Object data){ // SET FROM ACTIVITY
this.data = data;
}
public Object getData() { // GET FROM NEXT ACTIVITY
return data;
}}
创建某种保存数据的单例 class.. 在第一个 activity 中将该数据设置在该单例 class 中,然后从第一个 activity 调用第二个 activity =22=]。 onCreate()
第二个 activity 从单例 class 中读取。
- 创建单例来保存数据列表。
- 在第一个 activity 调用第二个 activity 之前,在那个 Singleton class 中设置数据。
- 秒 activity
onCreate()
从单例中读取数据 class 并设置在适配器或你想使用的地方。
我认为直接在活动之间发送大数据或为此目的使用单例是不正确的:
- 您每次都会发送大量数据 - 这对性能不利。
- 你总是会在内存中保存大量的对象。那也不好。
我认为,最好的方法是为此使用数据库和 ORM。
因此您可以将查询发送到另一个 activity 并使用 CursorAdapter 进行列表呈现。在这种情况下,您可以通过两种方式在活动之间立即显示 大量数据、即时 "send" 数据。
就我而言,我会将一个大列表发送到 activity 并且只使用一次。
我认为数据库太重了,所以我决定以json格式写入缓存文件,并将缓存文件路径传递给下一个activity,然后读取json文件到列表。
通过意图将大量数据从一个 activity 发送到另一个的最佳方法是什么。我是否应该将数据分成少量并通过意图将它们一个一个发送。如果发送整个数据需要很多意图,例如大约 1000 个意图,它对 android 设备是否仍然有效。
进程是sender activity会拆分整个列表,然后在intent body中一个一个发送数据。在接收站点,receiver activity 将数据逐一收集并重建整个列表。这里的问题是如果发送整个列表需要太多的意图(大约 1000 个意图),它是否仍然可以在一般 android 设备上工作。它会导致任何性能问题吗?
Rather then sending big data through activities you should create a Data Controller from which you can get data. If you send data through activities you need lot of key name it will be confusing for you to track each data
class DataController{
static DataController controller;
Object data;
private DataController(){}
public static DataController getInstance(){
if(controller==null){
controller = new DataController();
}
return controller;
}
public void setData(Object data){ // SET FROM ACTIVITY
this.data = data;
}
public Object getData() { // GET FROM NEXT ACTIVITY
return data;
}}
创建某种保存数据的单例 class.. 在第一个 activity 中将该数据设置在该单例 class 中,然后从第一个 activity 调用第二个 activity =22=]。 onCreate()
第二个 activity 从单例 class 中读取。
- 创建单例来保存数据列表。
- 在第一个 activity 调用第二个 activity 之前,在那个 Singleton class 中设置数据。
- 秒 activity
onCreate()
从单例中读取数据 class 并设置在适配器或你想使用的地方。
我认为直接在活动之间发送大数据或为此目的使用单例是不正确的:
- 您每次都会发送大量数据 - 这对性能不利。
- 你总是会在内存中保存大量的对象。那也不好。
我认为,最好的方法是为此使用数据库和 ORM。
因此您可以将查询发送到另一个 activity 并使用 CursorAdapter 进行列表呈现。在这种情况下,您可以通过两种方式在活动之间立即显示 大量数据、即时 "send" 数据。
就我而言,我会将一个大列表发送到 activity 并且只使用一次。
我认为数据库太重了,所以我决定以json格式写入缓存文件,并将缓存文件路径传递给下一个activity,然后读取json文件到列表。