2012-12-01 112 views
2

我正在爲Android編寫一個應用程序,其中獲取應用程序的標籤(實際名稱)極其緩慢。特別是這個代碼表現非常糟糕:PackageInfo LoadLabel性能低下

packageInfo.loadLabel(pm); 

只是給你一些指標。在安裝有400個應用程序的Android設備上,建立所有應用程序包名稱列表(com.android。*,等等)需要不到一秒的時間。但是,要花30秒才能爲每個應用程序獲取實際名稱。

我試過這個代碼爲好,但它幾乎相同的結果(很慢):

(String)pm.getApplicationLabel(packageInfo); 

問題:如果應用程序軟件包名是已知的(即「com.android.htmlviewer」 ),有沒有其他方法可以快速獲取應用程序名稱(即「HTML查看器」)?

+0

loadLabel和getApplicationLabel真的沒有區別嗎? –

回答

1

您可以在您的「已知」應用程序名稱的應用程序中構建數據庫,並在每次應用程序遇到新程序包時對其進行更新。第一次運行需要一段時間,但之後只需檢查一個或兩個軟件包名稱即可節省大量時間。