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
Post a Comment