Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Enviar un objeto a un servicio a través de Intent sin vinculación

¿Es posible enviar un objeto a un servicio de Android a través de un intento sin realmente vinculante para el servicio? O quizás otra manera para que el Servicio acceda a los objetos …

  • Transferencia de datos mediante ultrasonido
  • El cursor Editext sigue parpadeando después de cerrar el teclado virtual
  • Android: ejecuta un hilo repetidamente dentro de un temporizador
  • Cómo convertir un SparseArray a ArrayList?
  • Muestra de audio nativo en el problema de generación de NDK
  • ¿Cómo se escribe el código nativo android para ARM en x86?
  • ¿Hay un diagrama de dependencias de tareas de Android gradle build?
  • Excepción de bucle de eventos sin tratamiento en el complemento org.eclipse.ui
  • Cambio del cajón de navegación Elemento seleccionado Color del color azul predeterminado
  • Cambiar el color del TEXTO (no del fondo) de un hilandero cuando un artículo es seleccionado
  • Cómo dibujar una línea en ImageView en Android?
  • Eclipse: ¿Cómo restaurar la configuración predeterminada en las perspectivas?
  • 3 Solutions collect form web for “Enviar un objeto a un servicio a través de Intent sin vinculación”

    Puede llamar a startService (Intent) de esta manera:

    MyObject obj = new MyObject(); Intent intent = new Intent(this, MyService.class); intent.putExtra("object", obj); startService(intent); 

    El objeto que desea enviar debe implementar Parcelable (puede consultar esta guía Percelable )

     class MyObject extends Object implements Parcelable { @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { // TODO Auto-generated method stub } } 

    Y con el servicio, en el método onStart () o onStartCommand () para api nivel 5 y más reciente, puede obtener el objeto:

     MyObject obj = intent.getParcelableExtra("object"); 

    Eso es todo 🙂

    Si no desea implementar Parcelable y su objeto es serializable

    utilizar esta

    En el remitente Activiy

     Intent intent = new Intent(activity, MyActivity.class); Bundle bundle = new Bundle(); bundle.putSerializable("my object", myObject); intent.putExtras(bundle); startActivity(intent); 

    En el receptor:

     myObject = (MyObject) getIntent().getExtras().getSerializable("my object"); 

    Funciona bien para mí probarlo. Pero el objeto debe ser serializable 🙂

    Al igual que Bino dijo, usted necesita tener su objeto personalizado implementar la interfaz Parcelable si desea pasar a un servicio a través de una intención. Esto hará que el objeto sea "serializable" en un sentido de Android IPC-wise para que pueda pasarlos a un objeto Intent putExtra (String, Parcelable) llamada.

    Para tipos primitivos simples, ya hay un montón de métodos setExtra (String, tipo primitivo ). Sin embargo, como te entiendo, esto no es una opción para ti, que es la razón por la que deberías ir por un paquete.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.