SDL: new method SDL_ANDROID_RestartMyself() that will restart current app

This commit is contained in:
Sergii Pylypenko
2015-06-25 23:07:25 +03:00
parent c026bea0bb
commit 97c256b03d
5 changed files with 27 additions and 0 deletions

View File

@@ -129,6 +129,8 @@ public class RestartMainActivity extends Activity
} catch (InterruptedException e) {}
Intent intent = new Intent(RestartMainActivity.this, MainActivity.class);
intent.putExtra(ACTIVITY_AUTODETECT_SCREEN_ORIENTATION, getIntent().getBooleanExtra(ACTIVITY_AUTODETECT_SCREEN_ORIENTATION, false));
String restartParams = getIntent().getStringExtra(SDL_RESTART_PARAMS);
intent.putExtra(SDL_RESTART_PARAMS, restartParams == null ? "" : restartParams);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
RestartMainActivity.this.startActivity(intent);
try{
@@ -144,4 +146,5 @@ public class RestartMainActivity extends Activity
private FrameLayout _videoLayout = null;
public static final String ACTIVITY_AUTODETECT_SCREEN_ORIENTATION = "libsdl.org.ACTIVITY_AUTODETECT_SCREEN_ORIENTATION";
public static final String SDL_RESTART_PARAMS = "SDL_RESTART_PARAMS";
}

View File

@@ -627,6 +627,8 @@ class Settings
Log.d("SDL", "libSDL: Is running on OUYA: " + p.isRunningOnOUYA());
if( p.isRunningOnOUYA() )
nativeSetEnv( "OUYA", "1" );
if (p.getIntent().getStringExtra(RestartMainActivity.SDL_RESTART_PARAMS) != null)
nativeSetEnv( RestartMainActivity.SDL_RESTART_PARAMS, p.getIntent().getStringExtra(RestartMainActivity.SDL_RESTART_PARAMS) );
try {
DisplayMetrics dm = new DisplayMetrics();
p.getWindowManager().getDefaultDisplay().getMetrics(dm);

View File

@@ -923,6 +923,14 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer
}
}
public void restartMyself(String restartParams)
{
Intent intent = new Intent(context, RestartMainActivity.class);
intent.putExtra(RestartMainActivity.SDL_RESTART_PARAMS, restartParams);
context.startActivity(intent);
System.exit(0);
}
private int PowerOf2(int i)
{
int value = 1;