1. Variable initialization:
Private Boolean isexit = false; private Boolean hastask = false;
2. Button capture (for example, in the ontouchdown function for button listening)
Presshomekeycount localhandler = new presshomekeycount (); If (isexit = false) {isexit = true; If (! Hastask) {message localmessage = new message (); localmessage. what = 0; localhandler. sendemptymessagedelayed (localmessage. what, 500l);} else {If (mrecentapplication. getvisibility () = view. visible) {mrecentapplication. setvisibility (view. invisible); isexit = false; hastask = false ;}} else {If (mrecentapplication. getvisibility () = view. invisible) {mrecentapplication. setvisibility (view. visible );}}
3. Handle object
Public class presshomekeycount extends handler {public void handlemessage (final message MSG) {isexit = false; hastask = true ;}}
The above practice will have an endless loop, and I have improved it. The following is the improvedCode, There is no problem after testing, where the variable Initialization is the same
2. Key capture
If (isexit = false) {isexit = true; If (! Hastask) {message localmessage = new message (); localmessage. what = 0; localhandler. sendemptymessagedelayed (localmessage. what, 500l);} else {isexit = false; hastask = false; localhandler. removemessages (0); If (mrecentapplication. getvisibility () = view. visible) {mrecentapplication. setvisibility (view. invisible) ;}} else {If (mrecentapplication. getvisibility () = view. invisible) {mrecentapplication. setvisibility (view. visible);} localhandler. removemessages (0); isexit = false; hastask = true ;}
3. Handler object
Public class presshomekeycount extends handler {public void handlemessage (final message MSG) {isexit = false; hastask = false ;}}