2016-07-14 4 views
0

Я думаю о создании приложения, которое взаимодействует с веб-API.Как это сделать в Android?

Требование:

  1. Начало ставки и отображения уведомлений
  2. Отправить ставку на сайт через POST.
  3. Когда результат придет, обновите пользовательский интерфейс с результатом.
  4. Если пользователь не нажал кнопку остановки, вернитесь к # 2, чтобы остановить ставку и удалить уведомление.
  5. Если приложение закрыто или не активное приложение, то ставки будут по-прежнему продолжают
  6. Если уведомление нажата, показать/запустить приложение

После долгих исследований и чтения, я думал, что служба связанный план будет сделать это, но я не могу найти (или, может быть, я просто не понимаю), как это делать ...

Вот мои вопросы:

Если я услугу и логика ставок в нем, моя активность/приложение начнет сервис и свяжется с ним.

  1. Как я могу сообщить службе начать ставку с исходными данными ставки из этой активности?
  2. Как узнать услугу, когда приложение закрывается или не является активным приложением на экране?
  3. Как обновить пользовательский интерфейс приложения?

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

Update

(3) Я закончил с использованием LocalBroadcast сигнализировать компонентов App от службы, когда для обновления пользовательского интерфейса.

(2) Используя LocalBroadcast, я думал, что мое обслуживание не должно иметь никакого отношения к моему состоянию приложения.

(1) Я использовал Bound Service и просто позвонил в службу для передачи данных и начала ставок.

+0

католита избирателей, он просит разъяснений и указаний ... –

+1

Whe downvote? По крайней мере, скажите мне причину downvote ... –

+0

Попробуйте прочитать документацию @ https://developer.android.com/guide/components/services.html – JoxTraex

ответ

1

Вы присылаете данные для обслуживания с помощью Intent: https://stackoverflow.com/a/15899750/3423468

Intent serviceIntent = new Intent(YourService.class.getName()); 
serviceIntent.putExtra("data", "123456"); 
context.startService(serviceIntent); 

Тогда в службе переопределить OnStartCommand метод:

public int onStartCommand (Intent intent, int flags, int startId) 
{ 
    String userID = intent.getStringExtra("data"); 
    return START_STICKY;//or non-sticky 
} 

Для работы приложения события закрытия вы можете проверить этот ответ (никогда не использовал сам) : https://stackoverflow.com/a/26882533/3423468

И в отношении вашего последнего вопроса, y ожно use BroadcastReciever to send data from service to activity and update UI

Для дальнейшего чтения проверить эту связь:

  1. Services Tutorials
  2. Official Developers Guide To Services
  3. BroadCastReceivers Tutorial
+0

Спасибо ... Я попробую это и перечитаю те статьи, которые вы связали. Большинство статей на сайте Android Developer немного сложно понять, чтобы понять ... –

+0

Возьмите посмотри и спроси меня, если тебе что-нибудь понадобится. Я бы дал вам свои собственные примеры, но не умею хорошо писать на Java, я разработчик Xamarin. – arsena

+0

Неужели слушатели работают для обслуживания? Im думает о том, чтобы предоставить мое служение слушателю, что моя деятельность будет реализовывать и передавать данные через это событие. –

0

Использование залп апи. Добавьте его в качестве иждивенца в build.gradle

dependencies { 
    compile 'com.android.support:design:+' 
    compile 'com.android.support:appcompat-v7:+' 
    compile 'com.android.volley:volley:+' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
}