我们平常都是activity之间通过intent跳转。有的时候页面的展示通过html5,最近我们公司出现了一个新的需求,公司按业务的不同分别做了几个系统,在这些系统之间还是有一些共通性,就想要实现几个系统的传递交互。就是一个App启用另一个app ,如果有需要,传值过去。
有两种方法可以实现这个需求:
一、完全在java代码中实现
1、跳到指定app的指定页面
ComponentName componetName = new ComponentName(
"com.example.linechart","com.example.linechart.MainActivity");
//(另外一个应用程序的包名,要启动的Activity )
Bundle bundle = new Bundle();
bundle.putString("key", "value");
Intent intent = new Intent();
intent.putExtras(bundle);
intent.setComponent(componetName);
startActivity(intent);
2、直接跳到另一个app
Intent intent = new Intent();
PackageManager packageManager = this.getPackageManager();
intent = packageManager.getLaunchIntentForPackage("com.example.linechart");
intent.putExtra("jiajia", "从Linechart跳回原来的app");
startActivity(intent);
二、Intent + AndroidManifest.xml
java代码中 Intent intent = new Intent("name.foo");
要跳入App的AndroidManifest.xml文件中 为要跳入的类起一个名字
<intent - filter>
<action android:name = "name.foo"/>
<category android:name = "android.intent.category.DEFAULT"/>
</intent-filter>