从另一个应用程序模块启动活动

时间:2016-10-18 12:46:04

标签: android

  

如何从同一项目中的其他应用程序模块启动活动?

     

我不是在谈论如何从其他应用程序打开一个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版本,它将起作用(如预期的那样)。

enter image description here

0 个答案:

没有答案