【发布时间】:2013-03-20 06:49:06
【问题描述】:
我正在制作一个安卓应用程序。应用程序中有一个活动,当它被触发时,它会生成一个稀疏数组并用数据填充它。现在这个过程在模拟器上最多需要 1 分钟,这很长。所以我想在应用程序启动时创建一次稀疏数组,并将稀疏数组保存在 RAM 中以供应用程序的生命周期使用。并且无论何时触发活动,它都应该访问 RAM 中的稀疏数组,而不是创建一个新数组,从而节省时间和处理能力。这可以做到吗,如果可以,怎么做?对不起,如果这个问题很愚蠢,我是安卓新手。谢谢! *编辑:这是稀疏数组制作函数的样子: //访问sparsearray制作函数的函数
public String[] process(){
InputStream is = context.getAssets().open("feedtitlesandaddresses.txt");
InputStreamReader iz=new InputStreamReader(is);
BufferedReader br = new BufferedReader(iz);
String line = null;
while((line=br.readLine())!=null) {
readLine(line);
}}
//sparsearray making function
private void readLine(String line) {
//some string processing(omitted here)
int num1 = Integer.parseInt(firstNumber);
//int num2 = Integer.parseInt(secondNumber);
if(sparseArray.get(num1) == null) {
sparseArray.put(num1, new SparseArray<String>());
}
temporarySparseArray = sparseArray.get(num1);
for(int w=0;w<size;w++){
temporarySparseArray.put(w, array1[w]);
}
sparseArray.put(num1, temporarySparseArray);
temporarySparseArray = null;
}
【问题讨论】:
-
你能提供一些代码吗?如果你的 AVD 只有几兆赫兹,它会很慢。
-
@staaar 我怎样才能知道我的 AVD 有多少 MHz?
-
@staaar 代码的哪一部分?
-
@TomWong 在您的
onCreate()对象的onCreate()中启动一个线程或AsyncTask 并将结果保存在那里。 -
@staaar 我已经添加了代码
标签: java android sparse-array