Android 启动另一个App/apk中的Activity实现代码
发布时间 - 2026-01-11 00:47:22 点击率:次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;
}
}
ProjectA MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.text);
Intent intent = getIntent();
if(intent != null) {
textView.setText(intent.getStringExtra("msg"));
}
}
public void OnSendResult(View view) {
Intent intent = new Intent();
intent.putExtra("result","OK! from project a.");
this.setResult(RESULT_OK,intent);
this.finish();
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android 启动另一个App/apk中的Activity
# Android 启动其他APP
# 就可以
# 自己的
# 尤其是
# 不需要
# 找不到
# 两种
# 腾讯
# 将其
# 很容易
# 希望能
# 见我
# 才行
# 想把
# 谢谢大家
# 名字叫
# 如在
# 第二种
# 第一种
# 信中
# 这使我
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何正确下载安装西数主机建站助手?
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
专业商城网站制作公司有哪些,pi商城官网是哪个?
Laravel怎么使用artisan命令缓存配置和视图
Laravel如何生成URL和重定向?(路由助手函数)
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
5种Android数据存储方式汇总
香港服务器选型指南:免备案配置与高效建站方案解析
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
微信公众帐号开发教程之图文消息全攻略
长沙企业网站制作哪家好,长沙水业集团官方网站?
如何快速辨别茅台真假?关键步骤解析
Laravel怎么在Blade中安全地输出原始HTML内容
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
如何安全更换建站之星模板并保留数据?
python中快速进行多个字符替换的方法小结
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
Android仿QQ列表左滑删除操作
PHP 500报错的快速解决方法
如何在Tomcat中配置并部署网站项目?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
如何批量查询域名的建站时间记录?
活动邀请函制作网站有哪些,活动邀请函文案?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
利用 Google AI 进行 YouTube 视频 SEO 描述优化
米侠浏览器网页背景异常怎么办 米侠显示修复
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
网站图片在线制作软件,怎么在图片上做链接?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
js实现获取鼠标当前的位置
网站建设要注意的标准 促进网站用户好感度!
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
iOS验证手机号的正则表达式
Android自定义listview布局实现上拉加载下拉刷新功能
如何快速搭建安全的FTP站点?
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
制作公司内部网站有哪些,内网如何建网站?
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
如何在腾讯云服务器上快速搭建个人网站?
Laravel如何使用Service Container和依赖注入?(代码示例)
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】

