From 81aa873e413912e6e931234544d97967448c0c42 Mon Sep 17 00:00:00 2001 From: fkloft Date: Mon, 20 Jan 2014 22:37:37 +0100 Subject: [PATCH] allow garbage collection to free handlers --- mobile/src/com/cradle/iitc_mobile/IITC_FileManager.java | 4 +++- mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_FileManager.java b/mobile/src/com/cradle/iitc_mobile/IITC_FileManager.java index 6fceb214..f1707f07 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_FileManager.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_FileManager.java @@ -253,6 +253,8 @@ public class IITC_FileManager { @Override public void onActivityResult(int resultCode, Intent data) { + mIitc.deleteResponseHandler(this); // to enable garbage collection + try { if (resultCode == Activity.RESULT_OK && data != null) { Uri uri = data.getData(); @@ -270,8 +272,8 @@ public class IITC_FileManager { { encoder.write(c); } + encoder.close(); - mStreamOut.write("');".getBytes()); } diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java index a64a0087..218efb73 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java @@ -582,6 +582,14 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis startActivityForResult(launch, RESULT_FIRST_USER + index); } + public void deleteResponseHandler(ResponseHandler handler) { + int index = mResponseHandlers.indexOf(handler); + if (index != -1) { + // set value to null to enable garbage collection, but don't remove it to keep indexes + mResponseHandlers.set(index, null); + } + } + @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { int index = requestCode - RESULT_FIRST_USER;