app跳转app

来源:互联网 发布:mac怎么更改用户名 编辑:程序博客网 时间:2024/04/27 01:32

包名和Activity对应的类名已知的情况
Intent intent = new Intent();
intent.setClassName(“com.UCMobile”, “com.UCMobile.main.UCMobile”);
this.startActivity(intent);
或者这样

Intent intent = new Intent();
ComponentName cn = new ComponentName(“com.UCMobile”, “com.UCMobile.main.UCMobile”);
intent.setComponent(cn);
startActivity(intent);
或者这样

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName(“com.UCMobile”, “com.UCMobile.main.UCMobile”);
intent.setComponent(cn);
startActivity(intent);
比如UC浏览器的包名是com.UCMobile,主Activity是com.UCMobile.main.UCMobile,代码像上面那样写,就可以实现从当前activity跳转到UC的启动界面

可见,只要intent的实例获得所要跳转的activity所在的包名以及该activity对应的类名,就可以实现跳转,所以通过setClassName()或者对ComponentName实例化都是可行的

第三种方法比较灵活,不仅可以跳转到指定包名的Activity,还可以通过intent添加category和action属性进行准确跳转

关于如何获得手机app的包名方法如下(以miui7为例)
- 设置-关于手机-连续点击机身存储-进入电话信息-更多-程序使用统计信息
- 即可看到每一个运行的app的包名记录,对应Activity包名

包名已知,但Activity所对应的类名未知的情况
参考csdn博文http://http://blog.csdn.net/mad1989/article/details/38090513
但该该博文给出的方法编译不过,似乎存在问题
留待以后解决,留待以后解决,留待以后解决

小结
最简单实现不同app间的Activity跳转方法

Intent intent = new Intent();
intent.setClassName(“com.UCMobile”, “com.UCMobile.main.UCMobile”);
this.startActivity(intent);

0 0
原创粉丝点击