在做项目时需要module项目中调用主项目内的activity,用正常的显示startActivity(intent)是无法成功的,因为module项目中找不到主项目里的activity,这时候怎么办呢?可以通过scheme来进行跳转。
实现方式:
在主项目的AndroidManifest.xml中对需要跳转的Activity修改:
<activity android:name=".MainActivity">
<intent-filter>
<!--协议部分,-->
<data android:scheme="scheme" android:host="mainHost" android:path="/mainDetail" />
<!--下面这几行也必须得设置-->
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
在module项目中调用跳转的地方添加:
String url = "scheme://mainHost/mainDetail?text=你是猪";//这个就是刚刚前面在AndroidManManifest中设置的,?后面是需要传去的参数,但是不要太长
//host和path
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse(url));
startActivity(intent);
这样既可跳转成功!!
在接收的地方:
Uri data = getIntent().getData();
String text= data.getQueryParameter("text");