这篇文章将为大家详细讲解有关Android开发中怎么启动另一个应用中的Activity,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
Android 启动另一个App/apk中的Activity
前言:
Android提供了在一个App中启动另一个App中的Activity的能力,这使我们的程序很容易就可以调用其他程序的功能,从而就丰富了我们App的功能。比如在微信中发送一个位置信息,对方可以点击这个位置信息启动腾讯地图并导航。这个场景在现实中作用很大,尤其是朋友在陌生的环境找不到对方时,这个功能简直就是救星。
本来想把本文的名字叫启动另一个进程中的Activity,觉得这样才有逼格。因为每个App都会运行在自己的虚拟机中,每个虚拟机跑在一个进程中。但仔细一想,能够称为一个进程,前提是这个App必须要运行起来才行。而Android提供的能力,是不需要另一个App启动就可以将其特定的Activity启动起来的。
我们有至少两种办法达到启动另一个App中的Activity,
第一种用action启动,详情见我之前的文章《启动自己另一个程序的activity》。
第二种用intent设置className或component的办法启动。
举例如下。新建两个项目ProjectA和ProjectB,用B中的MainActivity启动A的MainActivitity。关键代码如下:
ProjectB MainActivity
public void OnStartActivityClicked(View view) { Intent intent = new Intent(Intent.ACTION_VIEW); String packageName = "com.lazytech.projecta"; String className = "com.lazytech.projecta.MainActivity"; intent.setClassName(packageName, className); //second method// intent.setComponent(new ComponentName(// "com.lazytech.projecta",// "com.lazytech.projecta.MainActivity"// )); Bundle bundle = new Bundle(); bundle.putString("msg", "this message is from project B "); intent.putExtras(bundle); intent.putExtra("pid", android.os.Process.myPid()); startActivityForResult(intent, 1);// startActivity(intent); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case 1: if(resultCode == RESULT_OK) { textView.setText(data.getStringExtra("result")); } break; } }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756