Я создал aar, и я добавил его в свой проект как модуль. в этом модуле у меня есть HelloWorldActivity, которую я хочу запустить.как начать активность в другом модуле явно
Модифицированный модуль выглядит так.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="ir.sibvas.testlibary1.HelloWorldActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="ir.sibvas.testlibary1.HelloWorldActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Теперь я могу начать эту деятельность с моего проекта, используя этот код
Intent intent = new Intent("ir.sibvas.testlibary1.HelloWorldActivity");
startActivity(intent);
, но как вы можете увидеть этот код неявно и проблема с неявным вызовом является то, что если я использовать этот модуль в более одно приложение, установленное на пользовательском устройстве, отобразит диалоговое окно выбора приложения для пользователя. Итак, как сделать этот вызов явным, не позволяя пользователю переключать приложение?
этот код не будет работать, так как HelloWorldActivity не в том же пакете, активности вызовов
Intent intent = new Intent(this, HelloWorldActivity.class);
startActivity(intent);
Я действительно не хочу, чтобы изменить мой модуль для каждого проекта, который использует его.
Поставщик контента может вам помочь. –
Намерение намерения = новое намерение (MainActivity.this, HelloWorldActivity.class); // использование MainActivity.this вместо этого –