2011-08-12 45 views
0

与getPackageManager()返回的List一起使用时indexOf()中的对象参数是什么?getInstalledPackages(0)?我用一个比较packageName的比较器在列表上完成了一个Collections.sort。我想根据一个packageName的字符串来获取indexOf,但我无法弄清楚这个参数将如何形成。我试过android indexof arraylist由getInstalledPackages返回

PackageInfo searchInfo = new PackageInfo(); 
     searchInfo.packageName = procName; 
     int nameIndex = packs.indexOf(searchInfo); 

,并返回-1

回答

0

你可以看看这个code.Here可以用的packageName比较.....

List<ApplicationInfo> packages; 
    PackageManager pm; 
    pm = getPackageManager(); 
      get a list of installed apps. 
      packages = pm.getInstalledApplications(0); 

ActivityManager mActivityManager = (ActivityManager) context 
       .getSystemService(Context.ACTIVITY_SERVICE); 

    for (ApplicationInfo packageInfo : packages) { 
    if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)==1)continue; 
    if(packageInfo.packageName.equals("mypackage")) continue; 



         } 
+0

我已经在使用迭代,但需要很长时间,我希望排序和indexOf会更快。 – ron

0

检查这一行:int nameIndex = packs.indexOf(searchInfo);并观察searchInfo

+0

对不起,我非常清楚地提出了我的问题。我需要知道如何形成对象参数才能正常工作。 – ron