У меня BroadcastReceiver в виде отдельного файла класса, который прослушивает действия датчика от службы в фоновом режиме. Я хочу, чтобы он иногда отображал текст на экране.
Я хочу, чтобы BroadcastClass вызывал метод в моем классе Activity, который заботится о отображаемой строке. Но мой класс BroadcastReceiver не может вызывать методы, которые не являются статическими (?) "Невозможно сделать статическую ссылку на нестатический метод showString (String) из типа myActivity"
И если я сделаю конкретный метод статическим в своем классе Activity, он фактически потеряет связь с пользовательским интерфейсом своей собственной активности, не найдя findViewById больше "Невозможно сделать статическую ссылку на нестатический метод findViewById (int ) из вида Activity ".
В другом небольшом приложении у меня был BroadcastReceiver в качестве внутреннего класса внутри файла класса Activity. Тогда у меня не было проблем с прямым доступом к пользовательскому интерфейсу. Затем у меня были соответствующие представления, объявленные как поля файла класса. Но я бы хотел структурировать вещи лучше, отделяя интерфейс от приема и анализа вещания. Странно, когда весь исходный код приложения находится в одном и том же файле.
Что значит создавать экземпляры Activity? Должен ли я сделать это в самом действии или в BroadcastReceiver? Мне не нужно более одного экземпляра моего пользовательского интерфейса, но мне может потребоваться доступ к нему из нескольких разных классов.
РЕДАКТИРОВАТЬ ДОБАВЛЕНИЕ:
Я пробую этот шаблон синглтона из книги, но создание экземпляра myActivity невозможно, доступ к конструктору запрещен. Сбой перед вводом onCreate:
public class MyStartupActivity extends Activity {
private static MyStartupActivity uniqueInstance;
private MyStartupActivity() {}
public static MyStartupActivity instantiate() {
if (uniqueInstance == null) {
uniqueInstance = new MyStartupActivity();
}
return uniqueInstance;
}