1. Variable initialization:
Private boolean isExit = false;
Private boolean hasTask = false;
Private boolean isExit = false;
Private boolean hasTask = false; 2. Key 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 );
}
}
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;
}
}
Public class PressHomeKeyCount extends Handler {
Public void handleMessage (final Message msg ){
IsExit = false;
HasTask = true;
}
}
The above practice will show an endless loop, and I have improved it. The following is the improved code. After testing, there is no problem. 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;
}
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;
}
}
From the column xiaoxiaobian3310903