繁体   English   中英

我如何从另一个功能模块访问活动

[英]How can i access an activity from another feature module

我正在创建一个即时应用程序,其中包括应用程序模块,基本功能模块,即时应用程序模块和另一个功能模块。 问题是我无法从基本功能和功能模块访问应用程序模块的活动,而基本功能模块和功能模块之间的访问相同,但是我能够从应用程序模块访问基本功能模块的活动。

现在,我正在使用以下方式访问活动:

Intent i = new Intent(this,
                    Class.forName("com.demo.test.appmodule.TextActivity"));

通过这种方法,studio在编译时不会显示任何错误。

  1. 两个不同功能模块之间是否还有其他通信方式?
  2. 为什么我能够从应用程序模块访问基本功能模块的活动,反之亦然?
  3. 我们可以从基础模块或任何其他功能模块访问应用程序模块的活动吗?

项目结构

在此处输入图片说明

我可以提供一个链接来定义即时应用程序的项目结构吗

提前致谢

之所以不能在要素之间直接进行通信,是因为它们彼此独立。

处理此问题的正确方法是使用其URL进行调用,例如: android-instant-apps / hello-feature-module / HelloActivity.java

Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://hello-feature.instantappsample.com/goodbye"));
intent.addCategory(Intent.CATEGORY_BROWSABLE);
startActivity(intent);

在即时应用程序结构中, 基础充当功能模块的库 ,功能内置于APK中 在已安装的应用程序结构中, 基础和功能均充当应用程序模块的 一些解释可以在这里找到:

曾经有一个页面@ https://g.co/instantapps解释了即时应用程序的结构,但看起来好像丢失了。 但是,您可以看一下:

不,您将无法直接从功能访问应用程序的活动。 作为已安装的应用程序, com.android.feature模块像com.android.library模块一样被编译/运行,因此在此处应用相同的规则:应用程序依赖于库,而不是相反。 要遍历该方向,您将需要使用与上面所示相同的Intent。

com.android.application都将与Instant-app的功能模块隔离开来,并且只会显示在已安装的App中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM