通过意图从一个活动向另一个活动发送大量数据的最佳方式是什么。我应该将数据分成少量并通过意图逐个发送。如果它需要大量的意图,例如大约1000个意图来发送整个数据,它对Android设备仍然有效。
流程是发件人活动将拆分整个列表,然后在意图体中逐个发送数据。在接收站点中,接收器活动将逐个收集数据并重建整个列表。这里的问题是如果它需要太多的意图(大约1000个意图)来发送整个列表,它仍然可以在一般的Android设备中工作。它会导致任何性能问题吗?
答案 0 :(得分:1)
而不是通过活动发送大数据,您应该创建一个数据控制器,您可以从中获取数据。如果您通过活动发送数据,则需要大量的密钥名称,因此您将难以跟踪每个数据
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;
}}
答案 1 :(得分:1)
我认为直接在活动之间发送大数据或为此目的使用单例数据不是正确的方法:
我认为,最好的方法是使用数据库和ORM。
因此,您可以将查询发送到另一个活动,并使用CursorAdapter进行列表呈现。在这种情况下,您可以立即显示大量数据,然后发送"活动之间的数据有两种方式。
答案 2 :(得分:0)
创建某种类型的单例类,它保存数据..在第一个活动集中,该单例类中的数据只调用第一个活动中的第二个活动。第二个活动的onCreate()
从单身类中读取。
onCreate()
从singleton类中读取数据并在适配器中设置或您要使用的位置。答案 3 :(得分:0)
就我而言,我将向一个活动发送一个大列表,并且仅使用一次。
我认为数据库太重了,所以我决定以json格式写入缓存文件,并将缓存文件路径传递给下一个活动,然后将json文件读取到列表中。