為什麼 Android 中安裝在 SD 卡上的應用無法添加 Widget?

安裝在SD卡上的應用無法添加Widget,也就是長按桌面空白處以後添加小工具里根本沒有該應用的Widget選項,而將應用移到手機內存里就可以添加Widget了,想知道這是為什麼?


因為widget是在啟動的時候載入的,而SD卡是在啟動以後載入的,有可能導致widget需要載入的時候SD卡還沒有載入系統,這樣就會導致widget的載入失敗,而widget的機制導致其不會再次載入,所以禁止安裝到SD卡上的應用開啟widget功能。


Offical的App2sd有限制的,官方網頁 http://developer.android.com/guide/appendix/install-location.html#ShouldNot

因為widget比sd卡載入的要早。

同時,個人建議輸入法,live Wallpaper也不要做 2sd


和Widget的生命周期有關,onEnable()只有在創建的時候被調用一次,以後只會調用onUpdate()來刷新;而一般Widget的資源載入都是在onEnable()中完成的。

onEnable()一般是在系統啟動後就開始載入了。


推薦閱讀:

Android 5.0 如何實現將布局的內容延伸到狀態欄?
最近Android studio出了1.0版,但是SDK一直無法下載,請問大家是怎麼解決的?
如何成為 Android 開發高手?
sdk manager更新失敗,顯示Download interrupted: read timed out,應該如何解決?
Vivo Xplay5要配備6G內存。Android系統真的需要這麼大的內存嗎?

TAG:Android應用 | Android開發 | Widget | Android |