android切換app
『壹』 Android APP調起另外一個APP並傳值
第一種:
第二種:
setClassName內部也是調用的setComponent。
調用方:
被調用方在AndroidManifest的Activity中添加自定義action:
被調用方數據接收:
第一種:
調用方通過點擊H5網頁上按鈕
這種方法存在著弊端就是沒辦法判斷手機上是否安裝APP時,更適合打開自己APP中Activity。一般建議js與java進行交互調用原生的方法: WebViewJavascriptBridge 使用簡單方便,並且避免了一些js腳本注入漏洞。
第二種:隱式調用
被調用方在AndroidManifest的Activity中添加自定義action:
被調用Activity中數據接收:
注意: 這兩種方式只適合針對某個頁面,都只是在自己應用中跳轉第三方應用,並不是真正的喚醒,比如應用A已經在後台存在了,應用B調用以上兩種方式後,只是在應用B中重新打開了一個應用A,此時的應用A是相當與存在兩個,一個是在後台單獨存在,一個是依存應用B存在,是添加到應用B的棧中的,當點擊A頁面裡面的跳轉按鈕時才真正調起跳轉到A應用。
『貳』 Android開發:如何動態更換APP圖標
原理 :在Manifest文件中,使用<activity-alias>標簽為我們的啟動Activity准備多個別名,擁有<activity-alias>標簽的activity指向啟動Activity,每個擁有<activity-alias>標簽的Activity都可以單獨設置一個icon,在程序中我們動態設置<activity>和<activity-alias>的enabled屬性來實現替換圖標效果。
步驟 :
這個 <activity-alias> 標簽需要注意的地方如下:
(1)android:name屬性可以隨意起。
(2)android:enabled屬性要設為false,否則桌面會存在多個APP圖標。
(3)android:icon屬性設置為不同的圖標。
(4)android:targetActivity屬性要設為啟動的Activity。
(5)添加<intent-filter>那部分來使其作為啟動的Activity。
注意setComponentEnabledSetting()方法的第3個參數有兩個值供選擇:1(也就是PackageManager.DONT_KILL_APP)和0。這兩種參數對應兩種效果:當設為1時,當切換APP圖標時,會有幾秒鍾的延遲,並且在延遲期間不能點擊圖標進入APP;當設為0時,當切換APP圖標時,會立刻更換,但是應用會被強制退出並被清理掉。
存在的問題 :
需要將<activity>的enabled屬性設為enabled或者將APP卸載後才能編譯運行。