Я нахожу, что
final Button yourButton = (Button)view.findViewById(R.id.your_button);
yourButton.setFocusable(false);
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
...///);
может решить проблему. Если вы хотите получить некоторые данные при нажатии кнопки, полезно использовать теги. Здесь кнопка объявляется окончательной, потому что она будет использоваться внутри внутреннего класса.
WCF не несет ответственности за объект. WCF просто сериализует объект, который вы передаете в него с одной стороны, и создает новый с другой стороны.
Там действительно ничего, что WCF может взять на себя. Поэтому я не уверен, почему вы думаете, что WCF будет иметь какие-либо причины для размещения объекта, переданного ему.
Обычно, вы сделали бы что-то вроде этого:
var proxy = new MyService();
var myobject = new MyObject();
proxy.Send(myobject);
// here myobject is still alive, and you can still do things with it..
EDIT:
Мне кажется, что вы действительно говорите о возвращенном значении из службы. В этом случае да .. по умолчанию WCF будет вызывать dispose по обоим параметрам, которые передаются и возвращаются. Однако это контролируется свойством OperationBehaviorAttribute.AutoDisposeParameters, которое по умолчанию имеет значение true.
Если вы установите для этого значения значение false, вы несете ответственность за вызов dispose, как правило, в обработчике событий OperationContext.OperationCompleted.