我正在做一個集成項目,它涉及到將兩個項目集成爲一個。如何做到這一點,我有一個共同的項目,這個共同項目的活動應該能夠調用其他兩個項目的活動,如每個不同的事件,如特定的按鈕按下等。我可以怎麼做?可以通過意圖嗎?如何從android中的另一個項目的活動調用一個項目的活動?反之亦然?
此外,其他兩個項目的活動應該能夠互相呼叫。如何做到這一點?
我正在做一個集成項目,它涉及到將兩個項目集成爲一個。如何做到這一點,我有一個共同的項目,這個共同項目的活動應該能夠調用其他兩個項目的活動,如每個不同的事件,如特定的按鈕按下等。我可以怎麼做?可以通過意圖嗎?如何從android中的另一個項目的活動調用一個項目的活動?反之亦然?
此外,其他兩個項目的活動應該能夠互相呼叫。如何做到這一點?
本Android開發者博客文章解釋如何爲這種整合提供給其他應用程序自定義應用程序的意圖:
http://android-developers.blogspot.com/2009/11/integrating-application-with-intents.html
你將不得不使用意圖過濾器,下面
PackageManager packageManager = getPackageManager();
Intent baseIntent = new Intent(ACTION_PICK_PLUGIN);
baseIntent.addCategory("matching.catagory");
List<ResolveInfo> activities = packageManager.queryIntentActivities(baseIntent, PackageManager.GET_RESOLVED_FILTER);
示例代碼
然後使用以下火的意圖,
Intent baseIntent = new Intent(activities.get(indexOfChild).filter.getAction(0));
baseIntent.addCategory(activities.get(indexOfChild).filter.getCategory(0));
baseIntent.setComponent(newComponentName(activities.get(indexOfChild).activityInfo.packageName,activities.get(indexOfChild).activityInfo.name));
startActivity(baseIntent);
我希望它有助於..
如果你想從現有的項目中調用項目在MainActivity,反之亦然,你可以使用PackageManager類
Intent i;
PackageManager manager = getPackageManager();
try {
i = manager.getLaunchIntentForPackage("Target package");
if (i == null)
throw new PackageManager.NameNotFoundException();
i.addCategory(Intent.ACTION_VIEW);
startActivity(i);
} catch (PackageManager.NameNotFoundException e) {
}