Remove hander on ruffy unbind.
This commit is contained in:
parent
5e845e37f7
commit
d672f3c653
|
@ -48,16 +48,36 @@ public class RuffyScripter {
|
|||
private volatile boolean connected = false;
|
||||
private volatile long lastDisconnected = 0;
|
||||
|
||||
private boolean started = false;
|
||||
|
||||
public RuffyScripter(final IRuffyService ruffyService) {
|
||||
this.ruffyService = ruffyService;
|
||||
}
|
||||
|
||||
public void start() {
|
||||
try {
|
||||
ruffyService.addHandler(mHandler);
|
||||
idleDisconnectMonitorThread.start();
|
||||
started = true;
|
||||
} catch (RemoteException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
if (started) {
|
||||
try {
|
||||
ruffyService.removeHandler(mHandler);
|
||||
} catch (RemoteException e) {
|
||||
log.warn("Removing IRTHandler from Ruffy service failed, ignoring", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isRunning() {
|
||||
return started;
|
||||
}
|
||||
|
||||
private Thread idleDisconnectMonitorThread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
|
|
@ -16,7 +16,6 @@ import android.support.v4.app.NotificationCompat;
|
|||
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import org.monkey.d.ruffy.ruffy.driver.IRuffyService;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -189,11 +188,14 @@ public class ComboPlugin implements PluginBase, PumpInterface {
|
|||
@Override
|
||||
public void onServiceConnected(ComponentName name, IBinder service) {
|
||||
ruffyScripter = new RuffyScripter(IRuffyService.Stub.asInterface(service));
|
||||
ruffyScripter.start();
|
||||
log.debug("ruffy serivce connected");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServiceDisconnected(ComponentName name) {
|
||||
ruffyScripter.stop();
|
||||
ruffyScripter = null;
|
||||
log.debug("ruffy service disconnected");
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue