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。注意:该属性是四大组件都拥有的。

      <activity          android:name=".LoginActivity"          android:exported="true">      activity>

(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 间的跳转及传递数据就结束啦~

更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  3. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  4. android用户界面之SeekBar教程实例汇总
  5. does not declare uses-library android.test.runner
  6. 【Android(安卓)Native Code开发系列】 五 运行、调试编译的Nati
  7. Android(安卓)屏幕保护程序制作及源码
  8. Android异步操作UI界面的四种方法(载至网络 )
  9. android 在Fragment 中使用ormlite 数据库

随机推荐

  1. Android异步处理二:使用AsyncTask异步更新
  2. andorid 记录,以后看
  3. [学习笔记-Android]EditText属性
  4. Android(安卓)之 Eclipse 导入 Android(
  5. Android异步处理三:Handler+Looper+Messag
  6. Android(安卓)CTS的使用
  7. Android体系结构
  8. Ubuntu下编译android的linux内核
  9. DEMO
  10. 《Android/OPhone 开发完全讲义》目录