Я запізнився, але повне рішення ;: Приклад класу, використовуйте такий контекст: -
public class SingletonSampleClass {
// Your cute context
private Context context;
private static SingletonSampleClass instance;
// Pass as Constructor
private SingletonSampleClass(Context context) {
this.context = context;
}
public synchronized static SingletonSampleClass getInstance(Context context) {
if (instance == null) instance = new SingletonSampleClass(context);
return instance;
}
//At end, don't forgot to relase memory
public void onDestroy() {
if(context != null) {
context = null;
}
}
}
Попередження (витоки пам'яті)
Як це вирішити?
Варіант 1 : Замість передачі контексту діяльності, тобто це до класу синглтон, ви можете передати applicationContext ().
Варіант 2: Якщо вам дійсно потрібно використовувати контекст діяльності, тоді, коли діяльність знищується, переконайтеся, що контекст, який ви перейшли до класу синглтон, встановлений на нуль.
Сподіваюся, це допомагає..∆∆∆∆
Context
об’єкти в Android. Це може призвести до витоку пам'яті. Дивіться мою відповідь щодо менш ризикованого рішення.