Java - Пересылка объектов - PullRequest
1 голос
/ 19 марта 2012

Мой Java-сервер получает объект Canvas из приложения для Android, и я пытаюсь отправить этот объект в другие приложения.Можно ли отправить это без того, чтобы сервер ничего не знал о том, что содержит объект, и просто переадресовал объект, не сохраняя его?

Спасибо

1 Ответ

2 голосов
/ 19 марта 2012

Canvas не сериализуем, поэтому вы не сможете этого сделать.

http://developer.android.com/reference/android/graphics/Canvas.html

в объектах Canvas есть частное состояние, которое вы не сможете захватить, даже если вы напишите свою собственную схему сериализации.

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

вот пост, в котором говорится о сохранении холста в растровое изображение, а затем в JPG,

Изображение на холсте в файл JPEG

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

что касается отправки в другие приложения, вам нужно будет отправить push-сообщение C2DM на целевое устройство / приложение, которое говорит: «На сервере есть что-то для вас, приходите и получите это». например, когда одно приложение помещает данные на сервер, у них есть идентификатор. C2DM включает этот идентификатор, поэтому целевые приложения выполняют GET с этим идентификатором, чтобы получить соответствующее изображение. обратите внимание, что данные изображения будут зависать в памяти в течение неопределенного периода времени, так как нет никакой гарантии, когда или если толчок C2DM попадет на все целевые устройства. Возможно, имеет смысл записать данные в постоянное хранилище (например, в базу данных или файловую систему), хотя бы временно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...