gpt4 book ai didi

android - 将单词插入 UserDictionary 的最快方法

转载 作者:行者123 更新时间:2023-11-29 18:13:48 32 4
gpt4 key购买 nike

我希望应用向 UserDictionary 添加几个 (2k) 个单词。

我试验过 ContentResolver().insert/bulk insert....

// array of words
String[] words = getResources().getStringArray(R.array.word_array);

Long start,end = null;

start = System.currentTimeMillis();


int len = words.length;
ContentValues[] mValueArray = new ContentValues[len];
ContentValues mNewValues = new ContentValues();

mNewValues.put(UserDictionary.Words.APP_ID, "com.my.example");
mNewValues.put(UserDictionary.Words.LOCALE, "en");
mNewValues.put(UserDictionary.Words.FREQUENCY, "100");

for (int i = 0; i < len; ++i) {

mNewValues.put(UserDictionary.Words.WORD, words[i]);

mValueArray[i] = mNewValues;
}

getContentResolver().bulkInsert(
UserDictionary.Words.CONTENT_URI, // the user dictionary content URI
mValueArray // the values to insert
);
end = System.currentTimeMillis();

Toast toast = Toast.makeText(this, "Time for " + Integer.toString(len-1)+" words: " + Long.toString((end-start)) + "ms", 50);
toast.show();

如果我批量插入 100 个单词,在我的手机上每个单词大约需要 100 毫秒。插入 2k 个单词需要 3 分钟以上。

有没有人知道更快的插入单词的方法或可以进行的任何优化?

附带问题:UserDictionary 大小是否有上限,还是取决于手机?

感谢任何帮助

迈克尔斯特

最佳答案

具体到你的情况:一次性在字典中添加 2000 个单词需要时间,而且没有太多可以做的优化。这里看到的时间是文件操作,从Java->NDK->Native操作转移过来的。

一般:无论使用何种方法,都必须了解这些只不过是文件操作,并且必然需要时间。 API(包括与 SQLite 相关的)只是 native 代码中预期文件操作的包装器。本地文件写入总是比文件读取花费更长的时间。

关于android - 将单词插入 UserDictionary 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297572/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com