在不知道其课程的情况下开始活

时间:2015-05-21 08:41:40

标签: android android-intent android-activity dependencies

有没有办法在不知道其类的情况下启动Activity,例如通过Intent Action?

背景是,我有两个模块,ModuleMain和ModulePushNotification。 ModuleMain依赖于ModulePushNotification。从ModulePushNotification我想在ModuleMain中启动一个Activity,但我无法添加依赖ModulePushNotification - > ModuleMain因为这会产生循环依赖。

因此,我无法以这种方式开展活动:

startActivity(new Intent(this, Main.class));

我尝试使用Intent Action启动Activity:

Intent intent = new Intent("com.android.main.MY_MAIN");
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivity(intent);

...在ModuleMain中使用此Manifest:

<activity
        android:name=".MainActivity"
        android:label="@string/app_name">

        <intent-filter>
            <action android:name="com.android.main.MY_MAIN" />
            <category android:name="ANDROID.INTENT.CATEGORY.DEFAULT" />
        </intent-filter>
    </activity>

...但这会产生异常:

Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.main.MY_MAIN cat=[android.intent.category.DEFAULT]

有没有办法启动应用程序的主要活动,而无需重组项目/依赖项?

1 个答案:

答案 0 :(得分:0)

尝试这样做。

Intent intent = new Intent();
intent.setAction("com.android.main.MY_MAIN");
startActivity(intent);