我目前正在开发一种从外部存储读取的动态壁纸。当设备启动时,我认为可以在存储准备好之前启动动态壁纸。特别是如果它进行定期错误检查。其他人正在报告问题,我认为这就是原因。我似乎无法对此进行测试,因为外部存储似乎会立即安装在我的设备上,而且我不确定如何强制它进行错误检查。所以我的第一个问题是,在启动动态壁纸之前,系统是否真的按照 BOOT_COMPLETED 意图进行操作。
如果没有,等待外部存储准备就绪的正确方法是什么。我正在考虑在应用程序的开头调用这样的东西
public void waitForExternalStorage()
{
while(Environment.getExternalStorageState().equals(Environment.MEDIA_CHECKING))
{
try { Thread.sleep(1000L); }
catch(InterruptedException e) { e.printStackTrace(); }
}
}
我是否必须检查其他情况,以防它在启动时进入 MEDIA_REMOVED -> MEDIA_UNMOUNTED -> MEDIA_CHECKING(optional) -> MEDIA_READY?