ComponentName是安卓提供给我们的通过A应用启动B应用的一个类。
启动一个新的程序的入口页
我们在A应用中写一个Button ,然后点击事件时候:
Intent intent = new Intent();
ComponentName cn =
new ComponentName("B应用的包名",
"要打开的B应用中的类名");
intent.setAction(Intent.ACTION_MAIN);
intent.setComponent(cn);
intent.putExtra("aaa","lalla");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
在B应用中。我们只有一个简单的展示页:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String aa = getIntent().getStringExtra("aaa");
System.out.println("--------"+aa);
}
}
我这的MainActivity 是B的主入口,而且我的B应用没有让在桌面显示
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
当然,必须是A和B同时安装在手机上。
启动一个新的程序的 非 入口页
注意上面ComponentName 里面第二个参数的类名要写对