如何从同一项目中的其他应用程序模块启动活动?
我不是在谈论如何从其他应用程序打开一个Activity,因此这不是Launch an application from another application on Android的重复
我有2个模块:手机和电视。两者都在com.android.application
文件上build.gradle
,并且两者都在同一个包com.example.myapp
上。
我希望tv模块启动移动模块的MainActivity。
我已将以下行添加到build.gradle(tv)文件中:
compile project(path: ':mobile')
on MainTvActivity.java我试图引用MainActivity
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
哪个不起作用,因为它无法解析符号MainActivity。它甚至无法建立。
另一种尝试是使用意图过滤器:
AndroidManifest.xml(移动设备)上的
<activity
android:name="com.example.myapp.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.example.myapp.mobile" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
MainTvActivity.java上的:
Intent intent = new Intent("com.example.myapp.mobile");
startActivity(intent);
将构建和安装,但会崩溃,因为它找不到任何解决意图的东西。但是,如果我安装移动版本然后运行tv版本,它将起作用(如预期的那样)。