標籤:execution settings category pat learn 附加 microsoft span 如何
一、如果多個Activity擁有同一個Intent Action,啟動時用同一個Action啟動會是什麼情況?
如何指定某一個Activity啟動?
在多個Activity擁有同一個Intent Action的情況下,如若想啟動某一指定Activity,則在該<intent-filter>
中添加<data android:scheme="app"/>。而且,將啟動的代碼寫為:
startActivity(new Intent("com.w.learnIntent.intent.action.MyAty", Uri.parse("app://myaty1")));
二、如何
通過瀏覽器連結啟動本地Activity?
1、在建立的項目LaunchLocalApp中建立一個Activity,並在AndroidManifest.xml檔案中進行配置:
<activity android:name=".LocalAppAty">
<intent-filter>
<category android:name="android.intent.category.BROWSABLE"/> <!--可瀏覽的-->
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="android.intent.action.VIEW"/>
<data android:scheme="app"/> <!--協議的名字-->
</intent-filter>
</activity>
將其安裝到模擬器上。
2、編寫index.html頁面(WebStorm)並執行:
<a href="app://LocalApp">Launch My App</a> <!--LocalApp是任意參數-->
3、通過模擬器內的瀏覽器訪問10.0.2.2:63343/WebStormProjects/index.html,點選連結即可訪問該Activity
(localhost通過模擬器來訪問,其地址是10.0.2.2)。
(附加:
使用WebStorm時,彈出requested without authorization,you can copy URL and open it in browser to trust it的問題。
解決方案:
File—>Settings—>Build,Execution,Deployment—>Debugger中,勾選上Allow unsigned requests的選項,應用即可。)
三、如何能接收到傳過來的參數?
LocalAppAty.java:
Uri uri = getIntent().getData();
System.out.println(uri);
運行程式則控制台輸出:
I/System.out: app://LocalApp
在Android中Intent的概念及應用(二)——Intent過濾器相關選項