@demon123
developer

Дождаться ответа на запрос, с другого приложения?

Здравствуйте, как можно приостановить процесс на минуту(в режим ожидания)
от другого приложения? Если в течение минуты запрос не обработается, то запрос удаляется.

По запросом подразумевается запись в БД, при отправке запроса записывается запись в БД с пустой одной колонной
и отобразится надпись ожидайте.В другом приложение отображается в виде listView все запросы, там он выбирает подходящий нужный запрос после он его подтверждает,
после подтверждения записывается значение в пустую колону. Потом в приложение где отправлялся запрос появляется надпись ваш запрос был принят.
А если в течение минуты запрос не был подтвержден то запрос удаляется.

Как еще можно определить проверку, что именно для того клиента запрос подтвержден, и только у него отобразиться надпись, что запрос принят?

В качестве базы использую parse.com

Немного кода
private class AnswerFromServer extends AsyncTask<Void, Void, Client> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            upperTextView.setText("Ожидайте...");
        }

        @Override
        protected Client doInBackground(Void... params) {
            final Client clientTemp = new Client();
                ParseQuery<ParseObject> query = ParseQuery.getQuery("test");
                query.getInBackground(client.getobjectId(), new GetCallback<ParseObject>() {
                    @Override
                    public void done(ParseObject parseObject, ParseException e) {
                        if (e == null) {
                            clientTemp.setNumber(parseObject.getInt("number"));
                        } else {
                            Log.d("Error: ", e.getMessage());
                        }
                    }
                });
            return clientTemp;
        }

        @Override
        protected void onPostExecute(Client aVoid) {
            super.onPostExecute(aVoid);
            if (!aVoid.getNumber().equals("")){
                upperTextView.setText("Ваш заказ подтвержден");
            } else {
                upperTextView.setText("Извините, но ваш заказ не принят");
            }
        }
    }

// Вызываю при нажатие кнопки
new AnswerFromServer().execute();
  • Вопрос задан
  • 287 просмотров
Решения вопроса 1
@belozerow
Во-первых, я ничего не понял из описания. Где у вас несколько приложений, где у вас БД?
Во-вторых, зачем асинктаск, в котором вы снова вызываете бэкграундную задачу?

onPostExecute будет всегда выполняться с пустым клиентом.
Асинктаск вам тут не нужен, используйте просто getInBackground
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
VYakushev
@VYakushev
Разработчик Android в Nowtaxi
Используйте в обоих приложениях BroadcastReceiver для отправки друг другу сообщений.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы