Это станет только загруженным однажды, когда класс будет загружен classloader. Этот пример обеспечивает лучшую реализацию Singleton однако, он максимально лениво загружается и ориентированный на многопотоковое исполнение. Кроме того, это работает во всех известных версиях Java. Это решение является самым портативным через различные компиляторы Java и виртуальные машины.
public class Single {
private static class SingleHolder {
private static final Single INSTANCE = new Single();
}
private Single() {
...load properties...
}
public static Single getInstance() {
return SingleHolder.INSTANCE;
}
}
на внутренний класс ссылаются не ранее (и поэтому загрузился не ранее загрузчиком класса), чем момент, которым называют getInstance (). Таким образом это решение ориентировано на многопотоковое исполнение, не требуя специальных конструкций языка (т.е. энергозависимый и/или синхронизируемый).
Все представления отрисовываются в одном потоке графического интерфейса пользователя, который также используется для всего взаимодействия с пользователем.
Поэтому, если вам нужно быстро обновить графический интерфейс или если рендеринг занимает слишком много времени и влияет на взаимодействие с пользователем, используйте SurfaceView
.
Основное отличие в том, что SurfaceView
можно рисовать с помощью фоновых изображений, но Views
- нет.
SurfaceViews
используют больше ресурсов, поэтому вы не хотите использовать их без необходимости.
Я заметил несколько вещей:
Для получения дополнительной информации (и отличного примера использования) обратитесь к проекту LunarLander в SDK раздел примеров.