2017-03-11 21 views
2

我是新来的android,我想了解如何将数组保存到内存。我不是说内部记忆,因为我知道共享首选项,外部存储和sqlite。我正在查看RAM /堆的范围内的东西。如何将数组保存到Android中的内存

实际的挑战是我有一个字符串数组的名称。第一次启动应用程序时,我从sqlite数据库中获取名称。

e.g

String[] names = new String[] {"dave", "james", "tommy" } 

这个列表可以增长到包含超过10000项。

在另一项活动中,我想检查列表中是否存在某些名称。我不想来回查询数据库来实现这一点。这就是为什么我认为节省内存可能是最好的选择,因为它可以提高性能。

所以我想知道如何将这个数组保存在内存中,并在另一个活动中读取它。我已经知道如何管理我的RAM了,我只是想方设法获取这些信息并从中读取信息。

感谢

+0

这个列表是静态的,或者可以改变? –

+0

我的意思是可以改变的值或不@Os。 –

+2

你的列表已经在RAM /堆中。这是一个Java对象... –

回答

0

创建Singleton模式,把你的array到它,你可以在你的应用程序实例分享您的阵列,但记住这singleton类将与应用程序被破坏,从而将你的,你里面阵列。

这是如何创建一个单身人士。

class Bar { 
private static class ArrayHolder { 
    public static List<String> array = new ArrayList<>(); 
} 

public static Bar getArray() { 
    return array; 
} 
} 

每当你需要访问阵列,只是这样做ArrayHolder.getArray()

+0

这里'ArrayHolder'类的目的是什么?它看起来像你试图做懒惰持有人成语,不正确;但懒惰看起来没有必要。 –

+0

我可以使用单例方法在另一个活动中从数组中获取数据吗? – Tajinere

+1

是的,你可以使用单例方法检索数据 –