If you think the Android project droid-fu listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/* Copyright (c) 2009 Matthias Kppler
*/*www.java2s.com*/
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/package com.github.droidfu;
import java.lang.ref.WeakReference;
import java.util.HashMap;
import android.app.Application;
import android.content.Context;
publicclass DroidFuApplication extends Application {
private HashMap<String, WeakReference<Context>> contextObjects = new HashMap<String, WeakReference<Context>>();
publicsynchronized Context getActiveContext(String className) {
WeakReference<Context> ref = contextObjects.get(className);
if (ref == null) {
return null;
}
final Context c = ref.get();
if (c == null) // If the WeakReference is no longer valid, ensure it is removed.
contextObjects.remove(className);
return c;
}
publicsynchronizedvoid setActiveContext(String className, Context context) {
WeakReference<Context> ref = new WeakReference<Context>(context);
this.contextObjects.put(className, ref);
}
publicsynchronizedvoid resetActiveContext(String className) {
contextObjects.remove(className);
}
/**
* <p>
* Invoked if the application is about to close. Application close is being defined as the
* transition of the last running Activity of the current application to the Android home screen
* using the BACK button. You can leverage this method to perform cleanup logic such as freeing
* resources whenever your user "exits" your app using the back button.
* </p>
* <p>
* Note that you must not rely on this callback as a general purpose "exit" handler, since
* Android does not give any guarantees as to when exactly the process hosting an application is
* being terminated. In other words, your application can be terminated at any point in time, in
* which case this method will NOT be invoked.
* </p>
*/publicvoid onClose() {
// NO-OP by default
}
}