diff options
Diffstat (limited to 'src/java/jogamp/android')
-rw-r--r-- | src/java/jogamp/android/launcher/ActivityLauncher.java | 9 | ||||
-rw-r--r-- | src/java/jogamp/android/launcher/LauncherUtil.java | 13 |
2 files changed, 18 insertions, 4 deletions
diff --git a/src/java/jogamp/android/launcher/ActivityLauncher.java b/src/java/jogamp/android/launcher/ActivityLauncher.java index 7e2d86d..3dc776d 100644 --- a/src/java/jogamp/android/launcher/ActivityLauncher.java +++ b/src/java/jogamp/android/launcher/ActivityLauncher.java @@ -38,12 +38,13 @@ import android.widget.TextView; import android.util.Log; public class ActivityLauncher extends Activity { - static final String TAG = "NEWTLauncherActivity"; + static final String TAG = "JogAmp-ActivityLauncher"; TextView tv = null; Method mOnCreate, mOnDestroy, mOnPause, mOnRestart, mOnResume, mOnStart, mOnStop, mSetRootActivity; Class<?> activityClazz = null; Object activityObject = null; + LauncherUtil.DataSet data = null; @Override public void onCreate(Bundle savedInstanceState) { @@ -51,7 +52,7 @@ public class ActivityLauncher extends Activity { super.onCreate(savedInstanceState); final Uri uri = getIntent().getData(); - final LauncherUtil.DataSet data = LauncherUtil.DataSet.create(uri); + data = LauncherUtil.DataSet.create(uri); data.setSystemProperties(); ClassLoader cl = ClassLoaderUtil.createClassLoader(this, data.getPackages(), false); @@ -133,6 +134,10 @@ public class ActivityLauncher extends Activity { public void onDestroy() { Log.d(TAG, "onDestroy - S"); callMethod(activityObject, mOnDestroy); + if(null != data) { + data.clearSystemProperties(); + data = null; + } super.onDestroy(); finish(); Log.d(TAG, "onDestroy - X"); diff --git a/src/java/jogamp/android/launcher/LauncherUtil.java b/src/java/jogamp/android/launcher/LauncherUtil.java index 63452b7..953a810 100644 --- a/src/java/jogamp/android/launcher/LauncherUtil.java +++ b/src/java/jogamp/android/launcher/LauncherUtil.java @@ -146,8 +146,14 @@ public class LauncherUtil { public final void setSystemProperties() { Iterator<String> argKeys = keyList.iterator(); while(argKeys.hasNext()) { - final String key = argKeys.next(); - System.setProperty(key, map.get(key)); + final String key = argKeys.next(); + System.setProperty(key, map.get(key)); + } + } + public final void clearSystemProperties() { + Iterator<String> argKeys = keyList.iterator(); + while(argKeys.hasNext()) { + System.clearProperty(argKeys.next()); } } @@ -190,6 +196,9 @@ public class LauncherUtil { public final void setSystemProperties() { properties.setSystemProperties(); } + public final void clearSystemProperties() { + properties.clearSystemProperties(); + } public final String getProperty(String key) { return properties.getProperty(key); } public final OrderedProperties getProperties() { return properties; } public final List<String> getPropertyKeys() { return properties.getPropertyKeys(); } |