2011-08-12 43 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