android - Service restart on starting activity -
i'm trying services working in android. application can start service now, when service running in background , start (main)activity, service restart (the oncreate() , onstartcommand() commands called). in mainactivity check if service running via following code:
if (isservicerunning()){ system.out.println("de serice running"); } else{ system.out.println("de service niet running"); startservice(new intent(this, yourservice.class)); } ... private boolean isservicerunning() { activitymanager manager = (activitymanager)getsystemservice(activity_service); (activitymanager.runningserviceinfo service : manager.getrunningservices(integer.max_value)) { log.d("services", service.service.getclassname()); if ("com.vandervoorden.mijncijfers.yourservice".equals(service.service.getclassname())) { return true; } } return false; } when service running "de serice running" shown in console.
why oncreate() , onstartcommand() called while didn't restart service myself? how can make sure service isn't start twice when started?
edit 1 2013-10-07 8:54 pm:
my service class:
public class yourservice extends service { alarm alarm = new alarm(); public void oncreate() { super.oncreate(); system.out.println("service: oncreate"); } public int onstartcommand(intent intent, int flags, int startid) { //alarm.setalarm(this); system.out.println("service: onstartcommand"); return start_sticky; } @override public ibinder onbind(intent intent) { return null; } }
this behavior looks weird if sure not destroying service somewhere in activity, make sure 1 instance of service running, flagging service using static flag keeps track of "oncreate" , "ondestroy", way independently if activity start service have validations in service itself.
hope helps.
regards!
Comments
Post a Comment