Skip to content

Instantly share code, notes, and snippets.

@gordinmitya
Last active February 3, 2017 09:02
Show Gist options
  • Save gordinmitya/727c92df0d3a9b343213bc84843003f5 to your computer and use it in GitHub Desktop.
Save gordinmitya/727c92df0d3a9b343213bc84843003f5 to your computer and use it in GitHub Desktop.
Пример безопасной работы с потоками
// GameManager.java
public class GameManager {
private GameManager() {}
public static create(){
GameManager gm = new GameManager();
gm. // инициализируем созданием нового
return gm;
}
public static createFromStream(InputStream stream){
GameManager gm = new GameManager();
gm. // инициализируем значениями считанными из потока
return gm;
}
}
// MainActivity.java
private final String MAZE_KEY = "Maze";
// ....
if (savedInstanceState != null) {
InputStream mazeStream;
try {
try {
mazeStream = new ByteArrayInputStream(savedInstanceState.getByteArray(MAZE_KEY));
gameManager = GameManager.createFromStream(mazeStream);
} finally {
if (mazeStream != null) {
mazeStream.close();
}
}
} catch (IOException e) {
Log.e(MainActivity.class.getName(),"Ошибка чтения состояния из потока : "+e.getMessage());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment