如何在Android中的另一个模块中调用Activity(属于模块)?

Rak*_*esh 5 android module android-intent android-activity android-studio

这是一个场景:我的单个应用程序中有2个模块(在Android Studio中,文件 - >新建 - >新模块).

  1. 模块A.
  2. 模块B.

模块A(它不是一个库项目.它的gradle开始于apply plugin:'com.android.application').

模块B(也不是库模块).

在模块B内部,我需要调用属于模块A的Activity(比如MainActivity).

模块A清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.abc.emergencycontacts">
    <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true">
<activity android:name=".EmergencyContactsActivity" android:theme="@style/AppTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

模块B清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.abc.secondaryactivity">

    <application
        android:allowBackup="true"
        android:label="@string/app_name"
        android:supportsRtl="true">

        <activity android:name=".BaseAppActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        </activity>
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

我该如何实现?

请注意,我无法在模块B中添加模块A的依赖关系,因为模块A不是库模块.

等待您的宝贵回应.

Dav*_*ser 2

要从任何应用程序启动任何Activity应用程序,您只需执行以下操作:

Intent intent = new Intent();
intent.setClassName("packageName", "className");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

您不需要Activity在编译时引用其源代码。

这将解决您所说的问题。