0

アプリ名を指定して、アプリケーションのパッケージ名を見つけようとしています。以下のアプローチは、Droid3 で非常に時間がかかります。これを最適化するにはどうすればよいですか、それとも何か不足していますか?

 String                     sPackageName        = null;

   PackageManager           pm                  = m_Context.getPackageManager();

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

  ApplicationInfo   ap  = new ApplicationInfo();
  ap.loadLabel(pm);



   for (ApplicationInfo packageInfo : packages) {

        String          sApp                = packageInfo.loadLabel( pm ).toString();

        //Log.d(TAG, "Installed AppName = " + appName + "  ,package :" + packageInfo.packageName );
        //Log.d(TAG,   "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 

        if( sApp.compareTo( sAppName ) == 0 ){

            sPackageName    = packageInfo.packageName;
            break;
        }

   }// the getLaunchIntentForPackage  

   return sPackageName;

ありがとう、DK

4

1 に答える 1

0

loadLabel()パッケージ名を見つけるために呼び出す必要はありません。packageName直接取得するApplicationInfoResolveInfo、比較するだけです。

loadLabel()orの使用loadIcon()は非常に時間がかかります。

于 2012-08-15T16:49:12.957 に答える