android - IntentService Returning False When Checking if Service is Running -


i using intentservice call on webservice.

how calling start intent service:

 if (ismyconservicerunning(taskservice.class,context) == false) {             log.d(tag,"starting taskservice");             context.startservice(tasksintentuploaddownload);         } 

ismyconservicerunning method:

 private static boolean ismyconservicerunning(class<?> serviceclass,context context)      {         try {             activitymanager manager = (activitymanager) context.getsystemservice(context.activity_service);             (activitymanager.runningserviceinfo service : manager.getrunningservices(integer.max_value)) {                 if (serviceclass.getname().tolowercase(locale.english).contains(service.service.getclassname().tolowercase(locale.english))) {                     return true;                 }             }         }         catch(exception e)         {}         return false;     } 

ismyconservicerunning returning false (the service not running) , service being started multiple times noticed when override method onstartcommand , place webservice call in onstartcommand , not in onhandleintent , making onstartcommand return start_sticky, ismyconservicerunning recognize service running.

is bad run tasks in onstartcommand?

if yes, how can fix multiple calls run intentservice?

a better way be:

in service class:

private void sendmessagestart() {          intent intent = new intent("service-started");         intent.putextra("message", "this message!");         localbroadcastmanager.getinstance(this).sendbroadcast(intent);      }     private void sendmessagestop() {          intent intent = new intent("service-stopped");         intent.putextra("message", "this message!");         localbroadcastmanager.getinstance(this).sendbroadcast(intent);     } 

in class want check if service running or not:

private broadcastreceiver mmessagereceiverstart = new broadcastreceiver() {         @override         public void onreceive(context context, intent intent) {             // data included in intent             string message = intent.getstringextra("message");          }     };     private broadcastreceiver mmessagereceiverstop = new broadcastreceiver() {         @override         public void onreceive(context context, intent intent) {             // data included in intent             string message = intent.getstringextra("message");               }          }      }; 

Comments

Popular posts from this blog

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

javascript - Blogger related post gadget image Resize s72-c [ Need Expert Help ] -