When I move my applications to the the sd card using the "Move To SD Card" feature in ICS the widgets for particular application stop working it says "Problem loading widget".Does anyone know a solution to this? or do I just have to keep the application in the internal memory for the widgets to work?,
2 Answers
There are some technical reasons explained on the Android developers website that justify why the widget may have stopped working:
Any of this ones aren't recommended to move to an External Storage due to possible failure:
Services
Your running Service will be killed and will not be restarted when external storage is remounted. You can, however, register for the ACTION_EXTERNAL_APPLICATIONS_AVAILABLE broadcast Intent, which will notify your application when applications installed on external storage have become available to the system again. At which time, you can restart your Service.
Alarm Services
Your alarms registered with AlarmManager will be cancelled. You must manually re-register any alarms when external storage is remounted.
Input Method Engines
Your IME will be replaced by the default IME. When external storage is remounted, the user can open system settings to enable your IME again.
Live Wallpapers
Your running Live Wallpaper will be replaced by the default Live Wallpaper. When external storage is remounted, the user can select your Live Wallpaper again.
App Widgets
Your App Widget will be removed from the home screen. When external storage is remounted, your App Widget will not be available for the user to select until the system resets the home application (usually not until a system reboot).
Account Managers
Your accounts created with AccountManager will disappear until external storage is remounted.
Sync Adapters
Your AbstractThreadedSyncAdapter and all its sync functionality will not work until external storage is remounted.
Device Administrators
Your DeviceAdminReceiver and all its admin capabilities will be disabled, which can have unforeseeable consequences for the device functionality, which may persist after external storage is remounted.
Broadcast Receivers listening for "boot completed"
The system delivers the ACTION_BOOT_COMPLETED broadcast before the external storage is mounted to the device. If your application is installed on the external storage, it can never receive this broadcast.
Copy Protection
Your application cannot be installed to a device's SD card if it uses Google Play's Copy Protection feature. However, if you use Google Play's Application Licensing instead, your application can be installed to internal or external storage, including SD cards.
As you've guessed, your widgets, live wallpaper etc won't work once you move them to SD card. If you're rooted you can use solutions like link2sd and data2sd which creates an extra partition in your SD card to move your app or part of the app.