我正在创建一个即时应用程序,其中包括应用程序模块、基本功能模块、即时应用程序模块和另一个功能模块。问题是我无法从基本功能和功能模块访问应用程序模块的活动,并且基本功能模块和功能模块之间也是如此,但我能够从应用程序模块访问基本功能模块的活动。
现在我正在使用以下方式访问活动:
Intent i = new Intent(this,
Class.forName("com.demo.test.appmodule.TextActivity"));
通过这种方法,工作室不会在编译时向我显示任何错误。
- 两个不同功能模块之间是否有其他方式进行通信?
- 为什么我能够从应用程序模块访问基本功能模块活动,但反之则不能?
- 我们可以从基础模块或任何其他功能模块访问应用程序模块的活动吗?
我可以有一个定义即时应用程序的项目结构的链接吗
提前致谢
功能之间无法直接通信的原因是它们彼此独立。
处理此问题的正确方法是使用其 URL 调用它,例如:android-instant-apps/hello-feature-module/HelloActivity.java https://github.com/googlesamples/android-instant-apps/blob/master/hello-feature-module/features/hello/src/main/java/com/instantappsamples/feature/hello/HelloActivity.java
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://hello-feature.instantappsample.com/goodbye"));
intent.addCategory(Intent.CATEGORY_BROWSABLE);
startActivity(intent);
在即时应用程序结构中,基地充当图书馆对于功能模块,功能内置于APKs。在已安装的应用程序结构中,基础和功能都充当库对于应用程序模块。可以在这里找到一些解释:
为什么使用新的 Android 功能插件而不是库插件? https://stackoverflow.com/questions/44361335/why-use-the-new-android-feature-plugin-over-the-library-plugin/44361564#44361564
Android:您可以向 Instant App 模块添加活动吗? https://stackoverflow.com/questions/47425735/android-can-you-add-activities-to-the-instant-app-module/47430978#47430978
曾经有一个页面@https://g.co/instantapps https://g.co/instantapps这解释了即时应用程序的结构,但看起来缺少它。不过,您可以看一下:
- https://android-developers.googleblog.com/2017/08/android-instant-apps-best-practices-for.html https://android-developers.googleblog.com/2017/08/android-instant-apps-best-practices-for.html
- 页面底部@Codelabs/android-multi-feature-instant-app/#3 https://codelabs.developers.google.com/codelabs/android-multi-feature-instant-app/#3
不,您将无法从某个功能直接访问应用程序的活动。作为安装的应用程序,com.android.feature
模块被编译/行为为com.android.library
模块,因此在这里应用相同的规则:应用程序依赖于库,而不是相反。要遍历该方向,您将需要使用如上所示的相同类型的 Intent。
任何东西在com.android.application
将与即时应用程序的功能模块隔离,并且仅出现在已安装的应用程序中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)