在做項目時需要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");