Android从一个APP跳转到另一个APP的主界面或某页面,并传递数据

您所在的位置:网站首页 苹果如何禁止app跳转到其他应用界面上 Android从一个APP跳转到另一个APP的主界面或某页面,并传递数据

Android从一个APP跳转到另一个APP的主界面或某页面,并传递数据

2024-07-13 00:07| 来源: 网络整理| 查看: 265

1. Android 从一个 APP 跳转到另一个 APP 主界面

Intent intent = new Intent(Intent.ACTION_MAIN); //前提:知道要跳转应用的包名、类名 ComponentName componentName = new ComponentName("com.example.hust_twj.secondapp", "com.example.hust_twj.secondapp.MainActivity"); intent.setComponent(componentName); startActivity(intent);

本 Demo 包括 2 个测试的 APP ,FirstApp 主界面有 2 个按钮,分别进入 SecondApp 的主界面和某指定的界面;而SecondApp 主界面仅有一个登陆的按钮,点击该按钮可以进入登陆界面。

从 FirstApp 进入 SecondApp 的主界面跳转截图(代码如上):

这里写图片描述

2. Android 从一个 APP 跳转到另一个 APP 的某 activity

(1) 把要跳转的目标 APP 的指定 activity 暴露出来 在 AnroidManifest 文件中给 activity 节点设置 Android:exported="true",该属性表示当前 activity 能否被另外一个Application 的组件启动,true允许启动,false不允许。默认是false。注意:该属性是四大组件都拥有的。

(2) 启动/跳转

Intent intent = new Intent(); intent.setClassName("com.example.hust_twj.secondapp", "com.example.hust_twj.secondapp.LoginActivity"); startActivity(intent);

第一个参数是目标 APP 的包名,第二个参数是目标 APP 的 activity 的全称。如果目标 APP 的 activity 没有暴露入口,则会报权限禁止错误。

从 FirstApp 进入SecondApp 的某指定界面(登陆界面):

这里写图片描述

3. 跳转时使用 Bundle 传递数据

在 FirstApp 中使用 Bundle 传递数据:

public void go2Main(View view){ ComponentName componentName = new ComponentName("com.example.hust_twj.secondapp","com.example.hust_twj.secondapp.MainActivity"); Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putString("FIRST_APP_KEY", "你好 ,MainActivity"); intent.putExtras(bundle); intent.setComponent(componentName); startActivity(intent); } public void go2Login(View view){ Intent intent = new Intent(); intent.setClassName("com.example.hust_twj.secondapp", "com.example.hust_twj.secondapp.LoginActivity"); Bundle bundle = new Bundle(); bundle.putString("FIRST_APP_KEY", "你好 ,LoginActivity"); intent.putExtras(bundle); startActivity(intent); }

在 SecondApp 中,假如 MainActivity 和 LoginActivity 都有 TextView 用于显示从 FirstApp 中传过来的数据(本 Demo 中没有 TextView ),那么在 MainActivity 和 LoginActivity 中接收数据如下:

TextView mTextView = (TextView) findViewById(R.id.tv_main); Bundle bundle = this.getIntent().getExtras(); if (bundle != null){ //防止直接启动MainActivity时空指针闪退 String value = bundle.getString("FIRST_APP_KEY"); mTextView.setText(value); }

至此, APP 间的跳转及传递数据就结束啦~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3