Android调用远程Service的参数和返回值都需要实现Parcelable接口

import android.os.Parcel;
import android.os.Parcelable;

public class Person implements Parcelable{
  private Integer id;
  private String name;
  private String pass;

  public Person() {
    super();
  }

  public Person(Integer id, String name, String pass) {
    super();
    this.id = id;
    this.name = name;
    this.pass = pass;
  }

  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getPass() {
    return pass;
  }

  public void setPass(String pass) {
    this.pass = pass;
  }

  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result +((name == null) ? 0 : name.hashCode());
    result = prime * result +((pass == null) ? 0 : pass.hashCode());
    return result;
  }

  @Override
  public boolean equals(Object o) {
    if(this == o){
      return true;
    }
    if(o == null){
      return false;
    }
    if(getClass() != o.getClass()){
      return false;
    }
    Person other = (Person) o;
    if(name == null){
      if(other.name != null){
        return false;
      }
    }else if(!name.equals(other.name)){
      return false;
    }
    if(pass == null){
      if(other.pass != null){
        return false;
      }
    }else if(!pass.equals(other.pass)){
      return false;
    }
    return true;
  }

  //实现Parcelable接口必须实现的方法
  @Override
  public int describeContents() {
    return 0;
  }

  //实现Parcelable接口必须实现的方法
  @Override
  public void writeToParcel(Parcel dest, int flags) {
    //把该对象所包含的数据写到Parcel
    dest.writeInt(id);
    dest.writeString(name);
    dest.writeString(pass);
  }

  //添加一个静态成员,名为CREATOR。该对象实现了Parcelable.Creator接口
  public static final Parcelable.Creator<Person> CREATOR
        = new Parcelable.Creator<Person>() {

    @Override
    public Person[] newArray(int size) {
      return new Person[size];
    }

    @Override
    public Person createFromParcel(Parcel source) {
      // 从Parcel中读取数据,返回Person对象
      return new Person(source.readInt(),
          source.readString(), source.readString());
    }
  };

}

时间: 2024-12-13 18:15:19

Android调用远程Service的参数和返回值都需要实现Parcelable接口的相关文章

【Android】Android中Service类onStartCommand的返回值有关问题(转)

@Override public int onStartCommand(Intent intent, int flags, int startId) { System.out.println("---------->>onStartCommand2"); return super.onStartCommand(intent, flags, startId); } Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象

Android调用web Service

---恢复内容开始--- 继总结过web service后,再总结一下android中使用web service. 在android中使用web service需要使用到一个第三方开源的类库——ksoap2.他是一个SOAP Web Service客户端开发包.是android平台上高效.轻量级的SOAP开发包. 使用SOAP需要引入第三方的jar包:ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar.如何加入jar包就不在赘述.下面讲

Android中Service类onStartCommand的返回值问题

Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理.然后我们注意到这个函数有一个int的返回值,这篇文章就是简单地讲讲int返回值的作用. 从Android官方文档中,我们知道onStartCommand有4种返回值: START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但

Android开发 AIDL使用自定义对象作参数或返回值

http://www.pocketdigi.com/20121129/952.html 默认,AIDL支持对象作参数,但需要该对象实现Parcelable接口,且aidl文件应该是该类在同一包下,需要单独给该类定义一个aidl文件.定义模型类:EnglishItem.java: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

Android Service 中 onStartCommand()函数返回值含义

onStartCommand()是由Android系统调用的,本质上也是调用了onStart()方法. onStartCommand()返回值有几种: 1)START_STICKY 英文解释: Constant to return from onStartCommand: if this service's process is killed while it is started (after returning from onStartCommand), then leave it in t

javascript学习笔记(二):定义函数、调用函数、参数、返回值、局部和全局变量

定义函数.调用函数.参数.返回值 关键字function定义函数,格式如下: function 函数名(){ 函数体 } 调用函数.参数.返回值的规则和c语言规则类似. 1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta chaset="UTF-8"> 5 <title></title> 6 </head> 7 <body

Java加载jar文件并调用jar文件当中有参数和返回值的方法

在工作当中经常遇到反编译后的jar文件,并要传入参数了解其中的某些方法的输出,想到Java里面的反射可以实现加载jar文件并调用其中的方法来达到自己的目的.就写了个Demo代码. 以下的类可以编译生成hello.jar文件. 1 package org.lele.fatpanda; 2 3 public class Util 4 { 5 public static String myName; 6 /* 7 * 无参数,无返回值的方法. 8 */ 9 public static void get

java Servlet+mysql 调用带有输入参数和返回值的存储过程(原创)

这个数据访问的功能,我在.NET+Mysql .NET+Sqlserver  PHP+Mysql上都实现过,并且都发布在了我博客园里面,因为我觉得这个功能实在是太重要,会让你少写很多SQL语句不说,还能提高程序的执行效率, 今天在JAVA+Mysql上也实现了这个功能下面我贴出代码,这次我会讲详细点,让看的朋友能更加清楚它的好处在哪里. 一.封装的代码存储过过程调用方法   关于返回类CallableStatement的解释: CallableStatement 对象为所有的DBMS 提供了一种

存储过程输出参数、返回值、返回表及C#调用

存储过程中可以定义输出变量,返回值,执行存储过程还能获得结果集.每个存储过程的默认返回值为0.下面紧接着上文 SQL Server中存储过程Stored Procedure创建及C#调用 基础上写的一个新的Stored Procedure存储过程则包含了输出参数.返回值以及select结果. USE [db] GO /****** Object: StoredProcedure [dbo].[insert_persions] Script Date: 2/25/2015 11:14:11 AM