J'ai une base de données de dictionnaire qui contient un total de 99,833 mots mais séparés par lettre. Je suis en train de tester dictionaryA.txt qui contient 3922 mots.Android - Strings.xml par rapport aux fichiers texte. Lequel est plus vite?
Cas 1:
Quand je rentre un mot que je veux regarder en haut, permet de dire « Abacus », Utilisation d'un lecteur tampon, Mon application dit « thèse ne répond pas attendre - Quitter. ». Si je choisis d'attendre, il retournera le mot abaque et sa définition.
CODE:
InputStream inputStream = getResources().openRawResource(R.raw.definitiona);
try {
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
String s = in.readLine();
String delimiter = " - ";
String del[];
while(s != null)
{
s = in.readLine().replaceAll("\\s+", " ");
del = s.split(delimiter);
if (enhancedStem.equals(del[0]))
{
in.close();
databaseOutput.setText(s);
break;
}
}
in.close();
}
catch (FileNotFoundException e) {
databaseOutput.setText("" + e);
}
catch (IOException e1) {
databaseOutput.setText("" + e1);
}
Cas n ° 2:
Quand je rentre un mot que je veux regarder en haut, laisse dire "Abacus", en utilisant le strings.xml (i transféré les 3922 mots entiers en un string-array), il dit la même chose. Je dois cliquer sur Attendre avant de répondre.
CODE:
String[] wordA = getResources().getStringArray(R.array.DictionaryA);
String delimiter = " - ";
String[] del;
for (int wordActr = 0; wordActr <= wordA.length - 1; wordActr++)
{
String wordString = wordA[wordActr].toString();
del = wordString.split(delimiter);
if (enhancedStem.equals(del[0]))
{
databaseOutput.setText(wordA[wordActr]);
break;
}
else
databaseOutput.setText("Word not found!");
}
Pouvez-vous me dire ce qui est mieux? Devrais-je continuer à utiliser mon fichier texte? Ou transférez-les dans le fichier strings.xml car ils répondent tous les deux lentement de toute façon? Et avez-vous une idée de comment je peux éliminer le problème "Ne répond pas"? Merci d'avance!
montrent un code ... –
Does not garance, le problème est que vous geler l'interface utilisateur en faisant soulever des objets lourds sur l'interface utilisateur fil. –
Vous devez utiliser une base de données SQLite réelle, pas un fichier texte ou strings.xml. –