Что я получаю из этого, так это то, что вы пытаетесь создать метод с одним объектом Context. Во-первых, для этого вам понадобится Singleton Pattern of MyApp для создания вашей «глобальной» переменной. Однако я бы посоветовал против этого по этим причинам:
- Различные компоненты приложения по умолчанию имеют разные контексты (база, приложение).
- BroadcastReceiver, определенный в манифесте, вызывается операционной системой, а не вашим приложением.
- Использование шаблона Singleton для объекта контекста приведет к очень неприятным зависимостям.
- Вы идете против дизайна и красоты Android Framework.
Я подозреваю, что причина, по которой вы это делаете, в том, что ваш класс MyApp может начинать различные действия. Это имеет смысл, но ... вы можете получить объект контекста практически из любого места. Многие вещи в Android расширяют класс ContextWrapper (например, объекты Java с классом Object). Так что на самом деле нет никаких причин когда-либо иметь «глобальный» экземпляр этого. Фактически, метод onReceive () вашего BroadcastReceiver принимает параметр контекста. Вы можете использовать это, чтобы начать деятельность, а что нет.
Если это не то, почему вы хотите использовать синглтон-класс MyApp - и для этого есть веские причины, я хотел бы взглянуть на реализацию , разработанную Биллом Пью , поскольку она наиболее безопасна в Java. синхронизация и блокировка потока аккаунта.
Надеюсь, это поможет. Помните, не боритесь с SDK, пусть он работает на вас!