1.使用自定义Action
B程序中的AndroidManifest.xml中启动Activity的intent-filter:
2.使用包类名
A程序中调用的代码为:
A程序中调用的代码为:
Intent intent = new Intent();
intent.setAction("com.test.action.PLAYER");
startActivity(intent);
B程序中的AndroidManifest.xml中启动Activity的intent-filter:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="com.test.action.PLAYER" />
<category android:name="android.intent.category.DEFAULT" /><!--必须,否则无效-->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
2.使用包类名
A程序中调用的代码为:
Intent intent = new Intent();
intent.setClassName("com.test", "com.test.Player");
startActivity(intent);
intent.setClassName(arg1,arg2)中的arg1是被调用程序B的包名,arg2是B程序中目的activity的完整类名。
又或者:
Intent intent = new Intent();
ComponentName comp = new ComponentName("com.test", "com.test.Player" );
intent.setComponent(comp);
startActivity(intent);
B程序(被调用)中的AndroidManifest.xml中启动Activity的intent-filter不需要特别加入其它信息,如下即可:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
建议使用第一种方式。
原文链接:http://www.blogjava.net/bingle/archive/2010/02/01/311528.html