im trying create bound service. test created service plays music:
public class musicservice extends service { private final ibinder mybinder = new localbinder(); mediaplayer player; @override public ibinder onbind(intent arg0) { return mybinder; } @override public void oncreate() { super.oncreate(); player = mediaplayer.create(this,r.raw.teardrop); player.setlooping(true); // set looping player.setvolume(100,100); player.start(); } @override public void ondestroy() { player.stop(); player.release(); } public class localbinder extends binder { public musicservice getservice() { return musicservice.this; } } } and when bind activity nothing happens:
public class mainactivity extends tabswipeactivity { boolean isbound = false; musicservice myservice; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); //some code intent intent = new intent(this, musicservice.class); bindservice(intent, myconnection, context.bind_auto_create); if(isbound){ toast.maketext(this, "success", toast.length_short).show(); }else{ toast.maketext(this, "bind failed", toast.length_short).show(); } } private serviceconnection myconnection = new serviceconnection() { public void onserviceconnected(componentname classname,ibinder service) { localbinder binder = (localbinder) service; myservice = binder.getservice(); isbound = true; } public void onservicedisconnected(componentname arg0) { isbound = false; } }; } service registred in manifest:
<service android:name=".musicservice" /> bind failed appears , nothing happens
edit: bindservice() returns false
edit2: when add complete name in manifest eg. com.mypackage.mypackage2.musicservice bind service() returned true. onserviceconnected() never called.
next question is: when create service implements locationlistener, should use send message activity everytime when onlocationchanged()?
i know solution. extends tabactivity made actionbarsherlock instead of activity. known issue:
getapplicationcontext().bindservice(); fix that.
Comments
Post a Comment