應用覆蓋安裝後桌面圖標消失問題

一、現象

當一個 app 有兩個入口 Activity(標記了 main、launcher 的 Activity,如集成了 LeakCanary 的 app),安裝後,桌面上會出現兩個圖標。

當在 androidManifest 中刪除一個 activity將其 disable,再覆蓋安裝,桌面上的兩個圖標都會消失(有些機器會這樣,如 mix2;在模擬器上只有被刪除或者 disable 的那個沒了)。

通過代碼設置 Activity disable,也會讓圖標都消失(mix2 上,大約 13s 後)。

二、恢復

(測試機型:mix2)

2.1 通過代碼

大約十幾秒後生效

val componentName = ComponentName(context, "com.gdeer.gdtesthub.MyActivity")
val packageManager = context?.packageManager
packageManager?.setComponentEnabledSetting(componentName,
        PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
        PackageManager.DONT_KILL_APP)

2.2 通過 adb

即時生效

// 恢復 MyActivity
adb shell pm enable com.gdeer.gdtesthub/.MyActivity

// 恢復所有入口 Activity,先 disable 再 enable
adb shell pm disable com.gdeer.gdtesthub
adb shell pm enable com.gdeer.gdtesthub
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章