Я хотел бы использовать одни и те же пары ключ / значение между моей деятельностью и моими службами.Поскольку все они имеют разные контексты, я предполагаю, что мне нужно разделить один конкретный контекст между всеми ними.
Это не может быть контекст любого из действий, поскольку данное действие может не сохраняться в памяти все время,(особенно верно, поскольку моя фоновая служба запускается при запуске телефона, поэтому никаких действий не происходит вообще, пока пользователь не нажмет значок приложения.)
Я думал о создании установщика / получателя для статической переменной контекста в классеЯ использую для чтения / записи переменную контекста следующим образом:
public class temp_shared_context {
public static Context ctx = null;
public static Context getCtx() { return ctx; }
public static void setCtx(Context ctx) { temp_shared_context.ctx = ctx; }
}
Проблема, с которой я сталкиваюсь, заключается в том, что при запуске приложения ctx является нулевым, и никто не может использовать общие предпочтения, пока выделенный сервис не используетустановщик для записи переменной ctx.
Я пытался изменить свой геттер следующим образом:
public static Context getCtx() {
while (ctx == null) {}
return ctx;
}
Но это просто приводит к зависанию моего приложения.
Что быправильный способ обязательно решить эту проблему?(может быть, есть что-то более очевидное, чем использование сеттеров / геттеров или синглетонов)