现在,我正在开发一个使用语音恢复的android应用程序。基本上,当我从语音识别中得到字符串时,我想知道最好的搜索方法是什么。我目前正在使用packagename列表上的线性搜索,使用以下方法获得该列表:
pkgNames = new ArrayList<String>();
pkgAppsList = (ArrayList<ApplicationInfo>) getPackageManager()
.getInstalledApplications(PackageManager.GET_META_DATA);
// List available packages on phone.
for (ApplicationInfo appInfo : pkgAppsList) {
if (!isSystemPackage(appInfo))
pkgNames.add(appInfo.packageName);
}我已经决定使用ApplicationInfo list(pkgAppsList)并对其进行搜索可能更好,但是是否有一种更快的方法来搜索列表,而不仅仅是简单的线性搜索和使用结果来打开应用程序。现在,我能想到的就是:
for(ApplicationInfo ai: pkgAppsList){
if((ai.name).contains(voice_recog_result))
//open Launch Intent for ai.packageName
}是否有一种更快的搜索方法可以用于contains方法,或者我可以在不使用contains方法的情况下做到这一点?
发布于 2012-07-21 07:01:39
https://stackoverflow.com/questions/8032622
复制相似问题