You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从不同应用AppOne启动AppTwo的AppTwoActivity?

在AppOne中启动AppTwo的AppTwoActivity的实现方法

根据你提供的配置,有两种常用方式可以在AppOne中启动AppTwo的AppTwoActivity:

方法一:通过自定义Action启动

利用AppTwoActivity配置中声明的com.myAction.TestAction Action来匹配启动,这种方式不需要硬编码AppTwo的包名和类名:

修改按钮点击事件中的代码:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent("com.myAction.TestAction");
        // 由于AppTwoActivity的intent-filter中声明了DEFAULT category,这里可省略显式添加
        // 若要兼容更多场景,也可手动补充:intent.addCategory(Intent.CATEGORY_DEFAULT);
        try {
            startActivity(intent);
        } catch (ActivityNotFoundException e) {
            // 处理AppTwo未安装的情况,比如提示用户安装应用
            e.printStackTrace();
        }
    }
});

方法二:通过包名+类名直接启动

如果需要更精准的启动(避免Action冲突),可以直接指定AppTwo的包名和AppTwoActivity的全类名:

修改按钮点击事件中的代码:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent();
        // 替换为AppTwo的实际包名,示例为com.example.apptwo
        String appTwoPackageName = "com.example.apptwo";
        // 拼接AppTwoActivity的全类名
        String activityClassName = appTwoPackageName + ".AppTwoActivity";
        intent.setClassName(appTwoPackageName, activityClassName);
        try {
            startActivity(intent);
        } catch (ActivityNotFoundException e) {
            // 处理AppTwo未安装的情况
            e.printStackTrace();
        }
    }
});

注意事项

  • 必须确保AppTwo已安装在目标设备上,否则会抛出ActivityNotFoundException,建议添加异常捕获逻辑。
  • 使用方法一时,要保证AppTwoActivity的intent-filter中Action名称与代码中完全匹配。

内容的提问来源于stack exchange,提问作者MindC3ll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 21:10:48