public void HandleResult(int inCode) { if (inCode == resTerminate) { // Log.v("VIEW","Terminate Request."); mActivity.finish(); return; } double wake = NME.getNextWake(); final MainView me = this; if (wake <= 0) queueEvent( new Runnable() { public void run() { me.onPoll(); } }); else { final int tid = ++mTimerID; Date end = new Date(); end.setTime(end.getTime() + (int) (wake * 1000)); mTimer.schedule( new java.util.TimerTask() { public void run() { if (tid == me.mTimerID) me.queuePoll(); } }, end); } }