Android给我提供了在一个应用启动另外一个应用里的任意一个Activity的能力
这里有多种方法,在学习的过程中考虑到后面很多没有系统学习,按照学习进度,先介绍目前最熟悉的两种方式。
方法一:直接上代码,最直接的学习方式就是看代码,代码能看懂可以省略看解释注释的废话,看不懂再结合我后面的注释,相信能掌握,最后自己敲一遍跑一下,深刻印象美滋滋,废话有点多了!
Intent intent = new Intent("android.intent.action.SingleIntanceActivity");
startActivity(intent);
这段代码运行在APP1里,打开APP2里的SingleIntanceActivity,记得SingleIntanceActivity要在AndroidManifest.xml配置文件里设置action跟category标签。
上文件代码
<activity
android:name=".SingleIntanceActicvity"
android:launchMode="singleInstance" >
<intent-filter >
<action android:name="android.intent.action.SingleIntanceActivity"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="com.test.helloworld.SINGLEINTANCE"/>
</intent-filter>
</activity>
切记android.intent.category.DEFAUL要指定,不然会报错!
<category android:name="com.test.helloworld.SINGLEINTANCE"/>都知道category可以多设置,这里设置这个只是个人习惯,上面APP1的代码可以通过intent.setAction(),intent.addCategory()
来设置,效果一样!如下
Intent intent=new Intent();
intent.setAction("android.intent.action.SingleIntanceActivity");
intent.addCategory("com.test.helloworld.SINGLEINTANCE");
startActivity(intent);
方法二:通过intent.setClassName()来启动,上才艺,呸,上代码!
Intent intent=new Intent(Intent.ACTION_VIEW);
String packageName = "com.test.helloworld";//APP2的SingleIntanceActivity包名
String className = "com.test.helloworld.SingleIntanceActicvity";//全路径名
intent.setClassName(packageName, className);
startActivity(intent);
看完方法二是不是也很简单,好了先到这里,后面会继续更新这一篇日记,毕竟还有component方法还没介绍,同时跨App启动Service也需要介绍。。。。。。
版权声明:本文为Ashurol原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。