Вы можете сохранить свои ссылки в Application
вместо Activity
. Класс приложения де-факто является одиночным. Вам нужно только определить свои методы доступа.
public class BaseApplication extends Application {
private static BaseApplication sInstance = null;
public synchronized static BaseApplication getInstance() {
return sInstance;
}
public synchronized static void setInstance(BaseApplication app) {
sInstance = app;
}
public BaseApplication() {
}
@Override
public void onCreate() {
super.onCreate();
setInstance(this);
}
Теперь вы можете получить к нему доступ, позвонив по номеру BaseApplication.getInstance()
. В качестве бонуса Application
расширяет Context
, поэтому теперь у вас есть ссылка на контекст приложения в любом месте (безопасно использовать практически везде, кроме раздувания макетов).
Не забудьте определить этот класс в качестве базового класса приложения в манифесте:
<application
android:name="com.yourapp.BaseApplication">
Это не то, как работает деятельность. Ресурсы, которые вы нашли, верны. – Rohit5k2
Хорошо. Если это невозможно, есть ли способ добиться чего-то подобного? – Mak
Хотя технически можно сделать любой класс синглом, деятельность является одним из худших кандидатов из-за его жизненного цикла. Извините, вы не избежите обработки жизненного цикла. Зачем тебе это нужно? –