Исправлено восстановление состояния после блокировки/сворачивания
приложения
This commit is contained in:
parent
722ef1a719
commit
0b5ba76a9f
@ -37,6 +37,7 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
||||
|
||||
public static final String EXTRA_NAME = "name";
|
||||
public static final String EXTRA_SAVE = "save";
|
||||
private static final String STATE_SAVEINFO = "saveinfo";
|
||||
|
||||
private static final FadeInfo NO_FADE = new FadeInfo(false, false, 0);
|
||||
private static ViewActivity instance;
|
||||
@ -93,7 +94,12 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
||||
places = new MapPlacesES();
|
||||
|
||||
final Intent intent = getIntent();
|
||||
final SaveInfo save = intent.getParcelableExtra(EXTRA_SAVE);
|
||||
final SaveInfo save;
|
||||
if (savedInstanceState != null) {
|
||||
save = savedInstanceState.getParcelable(STATE_SAVEINFO);
|
||||
} else {
|
||||
save = intent.getParcelableExtra(EXTRA_SAVE);
|
||||
}
|
||||
try {
|
||||
InputStream stream = null;
|
||||
if (save != null) {
|
||||
@ -147,10 +153,22 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
||||
protected void onPause() {
|
||||
stopMusic(NO_FADE);
|
||||
stopSound(NO_FADE);
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
safeClearImageView(background);
|
||||
spritesClear();
|
||||
Parser.release();
|
||||
super.onPause();
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
final SaveInfo info = createSave();
|
||||
outState.putParcelable(STATE_SAVEINFO, info);
|
||||
super.onSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -490,16 +508,9 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
||||
}
|
||||
|
||||
private void saveState() {
|
||||
final long timestamp = System.currentTimeMillis();
|
||||
final SaveInfo info = new SaveInfo();
|
||||
info.setPath(scriptPath);
|
||||
info.setPosition(Parser.getInstance().getLastPosition());
|
||||
info.setTime(timestamp);
|
||||
info.setVariables(Variables.getVariables());
|
||||
info.setBackgroundType(backgroundType);
|
||||
info.setBackgroundName(backgroundName);
|
||||
final SaveInfo info = createSave();
|
||||
try {
|
||||
final String filename = Long.toString(timestamp);
|
||||
final String filename = Long.toString(info.getTime());
|
||||
IOUtil.writeSaveInfo(getApplicationContext(), filename, info);
|
||||
Toast.makeText(this, R.string.saved, Toast.LENGTH_SHORT).show();
|
||||
} catch (IOException ioe) {
|
||||
@ -507,6 +518,17 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
||||
}
|
||||
}
|
||||
|
||||
private SaveInfo createSave() {
|
||||
final SaveInfo info = new SaveInfo();
|
||||
info.setPath(scriptPath);
|
||||
info.setPosition(Parser.getInstance().getLastPosition());
|
||||
info.setTime(System.currentTimeMillis());
|
||||
info.setVariables(Variables.getVariables());
|
||||
info.setBackgroundType(backgroundType);
|
||||
info.setBackgroundName(backgroundName);
|
||||
return info;
|
||||
}
|
||||
|
||||
private final Runnable nextCommandRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
Loading…
Reference in New Issue
Block a user