aboutsummaryrefslogtreecommitdiffstats
path: root/src/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java')
-rw-r--r--src/java/jogamp/android/launcher/ActivityLauncher.java9
-rw-r--r--src/java/jogamp/android/launcher/LauncherUtil.java13
-rw-r--r--src/java/jogamp/common/os/android/StaticContext.java19
3 files changed, 29 insertions, 12 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(); }
diff --git a/src/java/jogamp/common/os/android/StaticContext.java b/src/java/jogamp/common/os/android/StaticContext.java
index cb55e65..055fa2f 100644
--- a/src/java/jogamp/common/os/android/StaticContext.java
+++ b/src/java/jogamp/common/os/android/StaticContext.java
@@ -27,26 +27,29 @@
*/
package jogamp.common.os.android;
-import android.content.*;
+import android.content.Context;
import android.util.Log;
public class StaticContext {
- private static Context context = null;
+ private static Context appContext = null;
private static boolean DEBUG = false;
- public static final synchronized void init(Context ctx) {
- if(null != context) {
+ /**
+ * @param appContext mandatory application Context
+ */
+ public static final synchronized void init(Context appContext) {
+ if(null != StaticContext.appContext) {
throw new RuntimeException("Context already set");
}
- if(DEBUG) { Log.d(MD.TAG, "init("+ctx+")"); }
- context = ctx;
+ if(DEBUG) { Log.d(MD.TAG, "init(appCtx "+appContext+")"); }
+ StaticContext.appContext = appContext;
}
public static final synchronized void clear() {
if(DEBUG) { Log.d(MD.TAG, "clear()"); }
- context = null;
+ appContext = null;
}
public static final synchronized Context getContext() {
- return context;
+ return appContext;
}
}