|
52 | 52 | public class AndroidEditor extends JavaEditor {
|
53 | 53 | private AndroidMode androidMode;
|
54 | 54 |
|
| 55 | + private java.util.Timer updateDevicesTimer; |
| 56 | + |
55 | 57 | protected AndroidEditor(Base base, String path, EditorState state,
|
56 | 58 | Mode mode) throws EditorException {
|
57 | 59 | super(base, path, state, mode);
|
@@ -232,9 +234,14 @@ public void actionPerformed(ActionEvent e) {
|
232 | 234 | menu.add(deviceMenu);
|
233 | 235 |
|
234 | 236 | // start updating device menus
|
| 237 | + // TODO: each Editor now runs its own, might be better to move this to Mode |
235 | 238 | UpdateDeviceListTask task = new UpdateDeviceListTask(deviceMenu);
|
236 |
| - java.util.Timer timer = new java.util.Timer(); |
237 |
| - timer.schedule(task, 5000, 5000); |
| 239 | + if (updateDevicesTimer == null) { |
| 240 | + updateDevicesTimer = new java.util.Timer(); |
| 241 | + } else { |
| 242 | + updateDevicesTimer.cancel(); |
| 243 | + } |
| 244 | + updateDevicesTimer.schedule(task, 5000, 5000); |
238 | 245 |
|
239 | 246 | menu.addSeparator();
|
240 | 247 |
|
@@ -468,6 +475,14 @@ public void showReference(String filename) {
|
468 | 475 | // }
|
469 | 476 |
|
470 | 477 |
|
| 478 | + @Override |
| 479 | + public void dispose() { |
| 480 | + if (updateDevicesTimer != null) { |
| 481 | + updateDevicesTimer.cancel(); |
| 482 | + } |
| 483 | + super.dispose(); |
| 484 | + } |
| 485 | + |
471 | 486 | public void statusError(String what) {
|
472 | 487 | super.statusError(what);
|
473 | 488 | // new Exception("deactivating RUN").printStackTrace();
|
|
0 commit comments