2013-03-06 5 views
0

Я пытаюсь использовать Android как многопользовательскую систему. Поэтому я пытаюсь обернуть голову вокруг очереди, не пройдя через 4 года compsci. Но я не ленив и готов читать, учиться и учиться.- очередь сообщений, похожая на очередь команд?

Что такое командная очередь, а не очередь сообщений?

Если я хочу поставить в очередь, так что последняя цель/команда в очереди запускается только после предыдущего, прежде чем она закончится, какую структуру данных я должен стремиться изучать/использовать?

Android/Java предлагает следующее: http://developer.android.com/reference/java/util/Queue.html. Но почему бы мне не использовать это: http://www.rabbitmq.com/java-client.html

Вещь, которую я застрял, не может быть сообщением или намерением быть сообщением тоже?

Намерения - это команды в основном, я говорю системе выполнить что-то. Но я хочу разрешить пользователям выполнять «что-то» только после того, как кто-то «что-то» выполнил.

У меня есть способ для многих людей использовать один андроид, мне просто нужно понять, как реализовать контроль над хаосом.

+0

Почему вы хотите использовать стороннюю библиотеку, если требуемая функциональность предоставляется на этом языке? – Catherine

+0

Как CommonsWare только что сообщила мне: «Очередь - это структура данных, используемая в одном приложении» + «RabbitMQ предназначена для очередей сообщений между машинами». Приложение позволяет удаленно отправлять намерения/команды в другое приложение/систему Android, чтобы затем обработать. Таким образом, использование обоих libs вступает в игру rabbitmq или таких в пользовательском приложении и встроенный lib в хост-приложение/систему. – sirvon

+0

http://stackoverflow.com/questions/4962755/why-are-commands-and-events-separately-represented – sirvon

ответ

1

Я пытаюсь использовать Android в качестве многопользовательской системы. Поэтому я пытаюсь обернуть голову вокруг очереди, не пройдя через 4 года compsci.

Наличие «4 лет compsci» было бы разумной идеей для тех, кто хочет переписать части операционной системы, как вы, кажется, хотите сделать.

Что такое командная очередь, а не очередь сообщений?

У одного есть слово «команда». У другого есть слово «сообщение». Таким образом, единственные другие различия заключаются в том, что вы придаете этим двум словам.

Например, некоторые могут утверждать, что «команда» является типом «сообщения», но обратное неверно.

Если я хочу, чтобы в очереди стояли команды, так что последняя цель/команда в очереди запускается только после предыдущего, прежде чем она закончится.

Вы не указали какие-либо указания на то, что вы используете для этих «намерений в основном для команд». Intent в Android используется для запуска активности, запуска или привязки к службе или отправки широковещательной передачи. Характеристики поведения Intent будут зависеть от того, что вы используете для Intents.

Например, sendBroadcast() не имеет строгой концепции «очереди». Тем не менее, IntentService делает, когда используется с startService() - он будет буфером Intents, ожидая onHandleIntent(), чтобы завершить обработку текущего Intent перед тем, как передать ему следующий.

Android/Java предлагает следующее: http://developer.android.com/reference/java/util/Queue.html.Но почему бы мне не использовать это: http://www.rabbitmq.com/java-client.html

RabbitMQ для очередей сообщений между машинами. Вы можете сказать это, прочитав страницу, с которой вы связались («Клиентская библиотека RabbitMQ Java позволяет Java-коду взаимодействовать с серверами AMQP»).

Queue является структурой данных, используемой в одном приложении, как это все в java.util пакете.

Не может быть сообщение или намерение быть сообщением тоже?

Вы можете присвоить любые значения, которые вы хотите использовать в терминах «команда» и «сообщение».

Но я хочу разрешить пользователям выполнять «что-то» только после того, как кто-то «что-то» выполнил.

В Андроиде нет модели общего назначения между Intent. Следовательно, без перезаписи какой-либо операционной системы у вас нет средств для обеспечения координации, которую вы ищете.

+0

Благодарю вас за ваши быстрые ответы во время моих исследований, у меня есть ясность, чем до понимания того, как, возможно, использовать эти варианты в моем приложении. «RabbitMQ предназначен для очередей сообщений между машинами» + «Очередь - это структура данных, используемая в одном приложении» ... эта разница помогла значительно. – sirvon

Смежные вопросы