一、通过ClassName方式
1、通过exported暴露对外可访问页面
<activity android:name=".ui.activity.LoginActivity"
android:exported="true">
2、启动页面
val intent = Intent()
intent.setClassName("com.lpf.demo", "com.lpf.user.ui.activity.LoginActivity")
startActivity(intent)
注:第一个参数为应用包名,第二个参数为activity的完整路径(由于项目中使用module所以不是简单的包名+activity)
二、通过action方式
1、通过注册action给要对外开放的页面
<activity android:name=".ui.activity.RegistActivity">
<intent-filter>
<action android:name="regist"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
2、启动页面
val intent = Intent("regist")
startActivity(intent)
三、通过scheme方式
1、通过注册scheme给要对外开放的页面
<activity android:name=".ui.activity.HomeActivity">
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="test"
android:host="com.lpf.demo"
android:path="/home" />
</intent-filter>
</activity>
2、启动页面
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("test://com.lpf.demo/home"))
startActivity(intent)
注:
(1)如果需要通过网页跳转,需要注册时再添加<category android:name="android.intent.category.BROWSABLE"/>
(2)scheme、host名称定义要使用小写字母