move LocalRepoService's Handler to a static subclass

This fixes this lint error:
"This Handler class should be static or leaks might occur"
This commit is contained in:
Hans-Christoph Steiner 2014-05-06 11:55:17 -04:00
parent 882e010052
commit 5d995aa8c8

View File

@ -42,21 +42,29 @@ public class LocalRepoService extends Service {
public static int STOP = 12345678; public static int STOP = 12345678;
public static int RESTART = 87654; public static int RESTART = 87654;
final Messenger messenger = new Messenger(new Handler() { final Messenger messenger = new Messenger(new StartStopHandler(this));
static class StartStopHandler extends Handler {
private static LocalRepoService service;
public StartStopHandler(LocalRepoService service) {
StartStopHandler.service = service;
}
@Override @Override
public void handleMessage(Message msg) { public void handleMessage(Message msg) {
if (msg.arg1 == START) { if (msg.arg1 == START) {
startWebServer(); service.startWebServer();
} else if (msg.arg1 == STOP) { } else if (msg.arg1 == STOP) {
stopWebServer(); service.stopWebServer();
} else if (msg.arg1 == RESTART) { } else if (msg.arg1 == RESTART) {
stopWebServer(); service.stopWebServer();
startWebServer(); service.startWebServer();
} else { } else {
Log.e(TAG, "unsupported msg.arg1, ignored"); Log.e(TAG, "unsupported msg.arg1, ignored");
} }
} }
}); }
private BroadcastReceiver onWifiChange = new BroadcastReceiver() { private BroadcastReceiver onWifiChange = new BroadcastReceiver() {
@Override @Override