2012-03-12 67 views
1

我正在製作一個應用程序,它使用包管理器來查找手機上的所有應用程序並將其顯示在列表視圖中。目前它只能打開應用程序,但我希望將意圖發送給另一個使用服務和廣播回放器的課程。這個想法是創建一個快捷方式,只需點擊另一個類中的按鈕即可啓動選定的應用程序。這裏是我的代碼:使用服務從listview發送目的

protected void onListItemClick(ListView l, View v, int position, long id) { 
ResolveInfo launchable=adapter.getItem(position); 
ActivityInfo activity=launchable.activityInfo; 
ComponentName name=new ComponentName(activity.applicationInfo.packageName, 
            activity.name); 
Intent i=new Intent(Intent.ACTION_MAIN); 


i.addCategory(Intent.CATEGORY_LAUNCHER); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
      Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
i.setComponent(name); 

startActivity(i);  

} 我希望該服務是由剛剛點擊ListView中的一個又一個應用程序改變。我也希望它可以保存在手機上。

有沒有辦法做到這一點?

回答

0

我通過創建一個保存包名的SharedPrference解決了這個問題。通過使用try-catch來馴服它,我設法在可能的情況下啓動應用程序,如果不可以,則不會崩潰。要「刪除」選擇,我只是將Prefrence更改爲「」,或者不是包名。