我目前正在开发一个读取外部存储的实时壁纸。当设备启动时,我假设实时壁纸可能在存储准备好之前就被启动了,尤其是如果它正在进行定期的错误检查。其他人报告了问题,我认为这就是原因。我似乎无法测试这个问题,因为外部存储在我的设备上似乎会立即挂载,而且我不确定如何强制它进行错误检查。所以我的第一个问题是,系统是否确实等待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的情况,我是否需要检查其他情况?
BroadcastReceiver
而不是BroadcastReciever
)。SO不允许我编辑。 - just me