我需要使用意图过滤器指定我的登录活动:
<activity
android:name=".view.LoginActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="com.example.sdk.LOGIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
我想这样做的原因是我正在开发一个我想在几个项目中使用的 SDK,这是我能弄清楚如何通知作为登录活动的 SDK 的最佳方法,而它是仅在 app 模块中定义。
在我做了这样的声明后,我开始像这样的登录活动(在库和应用程序中):
Intent intent = new Intent();
intent.setAction("com.example.sdk.LOGIN");
context.startActivity(intent);
依赖于同一个 SDK 的两个或多个应用程序可能会同时安装在同一个设备上。如果我理解正确,在这种情况下,在这些应用程序中的每一个中,Activity 启动都会启动一个随机登录活动(应用程序 A 中的调用可能会启动应用程序 B 的登录)。
- 我对自定义意图过滤器如何工作的理解是否正确?
- 有没有办法告诉应用程序 A 中的调用仅使用应用程序 A 中的意图过滤器声明
也欢迎提出关于重用登录相关逻辑的替代方法的建议,而不依赖于意图过滤器。