0

У меня есть alarm (repeatatingarm) и BroadcastReceiver для его обработки. будильник установлен в моем activity с ожидающим намерением, относящимся к классу BroadcastReceiver. У меня есть база данных sqlite в моей деятельности. Я хочу обновить базу данных sqlite в моем будильнике, поэтому мне нужен объект sqlite из моей активности. это необходимо и для моего asynctask, который также выполнен в моей тревоге. Как я могу это сделать? в короткие сроки, я хочу передать свой объект активности моему конструктору трансляции, поэтому я могу использовать свой экземпляр sqlite.Как передать объект с намерением

EDIT: Я заметил, что если я определить BroadcastReciever в моей деятельности, я могу сослаться на него так просто, как MyActivity.this. есть ли другой способ, а не это.

+0

Вы не можете слишком много работать в 'broadcastreceiver'. –

+0

определяют все классы внутри моей деятельности. могу ли я получить доступ к объекту класса активности из них? –

+0

Да, вы можете вызывать любой метод из любого класса, принимающего его не обновляемый и пользовательский интерфейс, и вы должны передать контекст приложения из вашей вызывающей стороны, и вы можете использовать любой метод, как любой класс Activity. –

ответ

1

Вы не можете слишком много работать в 'broadcastreceiver'.

Для того, чтобы сделать это, вы должны создать один класс обслуживания и вызвать службу извещателя. а затем напишите свой код базы данных в Service.

В службе вы можете создать 'sqlite' DataBase объект через getApplicationConext().

Также в службе необходимо создать отдельную тему для вашей работы или использовать AsyncTask для выполнения операций с базой данных.

+0

Мне нужна повторная тревога, поэтому мне нужно, чтобы служба вещания не обслуживалась. –

+1

Да, вы правы для вещания, но у трансляционного транслятора ограниченное время для выполнения вашей работы. Лучший подход заключается в том, что вы вызываете услугу извещателя трансляции, а затем выполняете ли вы службу в сервисе, –

+0

сервис может быть только способом передачи приветствия/пожара. –