Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-05-2016
voci voci is offline
Miembro
 
Registrado: oct 2003
Posts: 97
Poder: 21
voci Va por buen camino
Servicio en android.

He Creado un sencillo servicio para que lance una notificación cada 2 minutos, el servicio funciona perfectamente, lanza las notificaciones como debe hacer, el problema es que cuando cierro la aplicación, aunque android indica que el servicio sigue funcionando, ya no lanza las notificaciones hasta que vuelvo a abrir la aplicación.

¿Es así como funcionan los servicos de android?, ¿hay algo que se me escapa?.

Saludos.
Responder Con Cita
  #2  
Antiguo 30-05-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hay varios tipos de servicios que puedes definir. El componrtamiento puede variar según el tipo. Revisa que hayas creado el que se ajusta a tus necesidades.

Más info.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 30-05-2016
voci voci is offline
Miembro
 
Registrado: oct 2003
Posts: 97
Poder: 21
voci Va por buen camino
Gracias Neftali por contestar una vez más, siempre al pie del cañón.

A raíz de tu respuesta he estado mirando y he visto esto por internet "Android services allow for execution even when app is not running", pero con mi limitado inglés no veo claro como conseguirlo

Supongo que te refieres a crear un servicio remoto, voy a ver si consigo entender algo ya que todo lo que veo sobre este tema está en inglés, y como digo no es precisamente mi fuerte.

Saludos.
Responder Con Cita
  #4  
Antiguo 30-05-2016
voci voci is offline
Miembro
 
Registrado: oct 2003
Posts: 97
Poder: 21
voci Va por buen camino
Esto dice la documentación de Embarcadero:

Starting a Service

Services can be started with ALocalServiceConnection.StartService('<service_name>') and ALocalServiceConnection.BindService('<service_name>'), or ARemoteServiceConnection.StartService('<service_name>') and ARemoteServiceConnection.BindService('<service_name>').

Pero RemoteServiceConnection no tiene el procedimiento StartService, yo al menos no lo veo.

Saludos.
Responder Con Cita
  #5  
Antiguo 30-05-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Revisa esta pagina que explica algo mas:

http://docwiki.embarcadero.com/RADSt...droid_Services

Sobre todo la parte que habla de "started service".

A started service: This service is started by an Android application. The service can run in the background indefinitely, even if the application is closed. This type of service usually performs a single task and automatically stops after finishing.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 31-05-2016
voci voci is offline
Miembro
 
Registrado: oct 2003
Posts: 97
Poder: 21
voci Va por buen camino
Gracias de nuevo Neftali, ya he estado leyendo la información de embarcadero, este es el sencillo código que utilizo para iniciar el servicio en modo local:

Código Delphi [-]
unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

uses
  System.Android.Service;


procedure TForm1.FormCreate(Sender: TObject);
begin
  TLocalServiceConnection.StartService('MiServicio');
end;



end.


El problema que encuentro es que entiendo que para iniciar el servicio en modo remoto solo sería cambiar la secuencia de modo de inicio.

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  TRemoteServiceConnection.StartService('MiServicio');
end;

Pero TRemoteServiceConnection no encuentra el procedimiento StartService.

Saludos.

Última edición por voci fecha: 31-05-2016 a las 00:14:09.
Responder Con Cita
  #7  
Antiguo 31-05-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Parece que también hay diferencias en el fichero Manifest de Android:

Código:
<service android:exported="true" android:name="com.embarcadero.services.<service_name>"/>
En lo que se refiere a la parte exported.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 31-05-2016
voci voci is offline
Miembro
 
Registrado: oct 2003
Posts: 97
Poder: 21
voci Va por buen camino
Es cierto, lo había leido pero no había pensado en ello. Lo miraré y ya te cuento.

Saludos.
Responder Con Cita
  #9  
Antiguo 03-06-2016
voci voci is offline
Miembro
 
Registrado: oct 2003
Posts: 97
Poder: 21
voci Va por buen camino
Al final he conseguido ejecutar el servicio de forma independiente a la aplicación, el servicio se denomina intentlocalservice, viene muy bien explicado en el ejemplo de embarcadero llamado DownloadServiceDemo.

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Fondo de app android con xe8 namco04 Desarrollo en Delphi para Android 2 23-04-2015 23:38:46
Acceso desde un servicio Android a un servidor DataSnap birmain Desarrollo en Delphi para Android 2 20-11-2014 03:06:12
Instalacion de SDK Android en XE5 noshy Desarrollo en Delphi para Android 2 04-06-2014 16:27:25
Delphi XE5 Y Android XDxDaVXDx Desarrollo en Delphi para Android 1 26-12-2013 20:40:35
Como arrancar o parara un servicio en funcion de otro servicio ?? QuarkBcn API de Windows 12 15-06-2011 14:46:11


La franja horaria es GMT +2. Ahora son las 08:00:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi