как вызвать метод фрагментации из сервиса

я реализовал сервис. он будет работать 3 минуты один раз в фоновом режиме. в службе я получаю значение из веб-службы и сохраняю в базе данных.

пользователь в ТОМ ЖЕ пользовательском интерфейсе, данные должны обновляться. я отображаю данные из базы данных в список.

Ниже мой класс обслуживания:

public class ServiceClass extends Service {

private DbHelper mHelper;
private SQLiteDatabase dataBase;

}

@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    getList();
    return START_STICKY;

}

во фрагменте у меня есть метод getDataFromDB()

как вызвать этот метод в службе, и пользовательский интерфейс будет обновляться динамически.

может ли кто-нибудь помочь мне преодолеть этот прм


person John    schedule 21.04.2015    source источник
comment
Попробуйте это, это может вам помочь. stackoverflow.com/questions/10334901/ stackoverflow.com/questions/9088315/   -  person Parthi    schedule 22.04.2015


Ответы (1)


Вы можете вернуть свой собственный экземпляр в методе привязки. После этого активность получает доступ к сервису. Используйте действие или любой класс в контексте действия в качестве слушателя и «отдайте» его службе. Таким образом, служба может вызывать прослушиватель при наличии новых данных.

Не забудьте отвязать активность и сервис, когда один из них будет уничтожен.

person RaphMclee    schedule 22.04.2015
comment
я пробовал с методом привязки, но служба должна работать, даже если приложение закрыто. но его принудительное закрытие, если я вызову службу привязки - person John; 22.04.2015
comment
Но тогда это другая проблема. Создайте другой вопрос. Или найдите его в SO, уже должен был быть дан ответ. - person RaphMclee; 22.04.2015
comment
что такое ТАК? мы не можем обновить пользовательский интерфейс, используя метод onStartCommand в службе??? - person John; 22.04.2015
comment
ТАК это StackOverflow :-). Итак, чтобы обновить пользовательский интерфейс, необходимо запустить Activity. Вы можете использовать Bind, который я описал, чтобы сделать это. Как только активность уничтожается, пользовательский интерфейс исчезает, нет смысла его обновлять. - person RaphMclee; 22.04.2015