Hello,
I am trying to understand why the Toast behavior is longer, when I
dispatch key events such as "home", "menu", and "search", compare to
when I dispatch key event "back".
The way I invoke Toast is:
- intercept back, home, menu, and search key events in dispatchKey()
- instead of doing normal business, I throw a broadcast intent when
key action is UP:
(I tried both function below yields the same finding) :
mContext.getApplicationContext().sendBroadcast(broadcastIntent);
or
mContext.sendBroadcast(broadcastIntent);
- my test apk listen to the broadcast intent and do a with
Toast.LENGTH_SHORT
Compare the log, paste below, for "back" and "home" key, it appears
there is extra "add window" operation when home key is pressed but not
"back" key.
Is there some flag that I should be setting it to by pass this "add
window" operation?
Any insight is helpful.
Thanks,
Alvin
***BACK KEY PRESS LOG BEGIN***
V/WindowManagerService(26716): Event: type=1 data=KeyEvent{action=0
code=4 repeat=0 meta=0 scancode=229 mFlags=8}
I/power (26716): *** set_screen_state 1
V/WindowManagerService(26716): Received key down: first repeat @
172366807
V/WindowManagerService(26716): Waiting for next key: now=172366310,
repeat @ 172366807
V/WindowManagerService(26716): Event: type=1 data=KeyEvent{action=1
code=4 repeat=0 meta=0 scancode=229 mFlags=8}
I/power (26716): *** set_screen_state 1
V/WindowManagerService(26716): Received key up: ignore repeat @
182365448
<< context.sendBroadcast(broadcastIntent) >>
V/WindowManagerService(26716): Waiting for next key: now=172366450,
repeat @ 182365448
I/NotificationService(26716): enqueueToast pkg=com.fana.oem.mod.test
callback=android.app.ITransientNotification$Stub$Proxy@440d5670
duration=0
V/WindowManagerService(26716): Adding window Window{44132ea8 Toast
paused=false} at 5 of 6
V/WindowManagerService(26716): Looking for focus: 6 = Window{44006b60
StatusBar paused=false}, flags=72, canReceive=false
V/WindowManagerService(26716): Looking for focus: 5 = Window{44132ea8
Toast paused=false}, flags=152, canReceive=false
V/WindowManagerService(26716): Looking for focus: 4 = Window{4405a978
StatusBarExpanded paused=false}, flags=70440, canReceive=false
V/WindowManagerService(26716): Looking for focus: 3 = Window{4404be20
TrackingView paused=false}, flags=131840, canReceive=false
V/WindowManagerService(26716): Looking for focus: 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false},
flags=66816, canReceive=true
V/WindowManagerService(26716): Found focus @ 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false}
I/power (26716): *** set_screen_state 1
V/WindowManagerService(26716): Relayout of Window{44132ea8 Toast
paused=false}: focusMayChange=true
V/WindowManagerService(26716): Remove Window{44132ea8 Toast
paused=false} client=44132da0, surface=Surface(native-token=4680552)
V/WindowManagerService(26716): Looking for focus: 6 = Window{44006b60
StatusBar paused=false}, flags=72, canReceive=false
V/WindowManagerService(26716): Looking for focus: 5 = Window{44132ea8
Toast paused=false}, flags=152, canReceive=false
V/WindowManagerService(26716): Looking for focus: 4 = Window{4405a978
StatusBarExpanded paused=false}, flags=70440, canReceive=false
V/WindowManagerService(26716): Looking for focus: 3 = Window{4404be20
TrackingView paused=false}, flags=131840, canReceive=false
V/WindowManagerService(26716): Looking for focus: 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false},
flags=66816, canReceive=true
V/WindowManagerService(26716): Found focus @ 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false}
V/WindowManagerService(26716): releasePendingPointer null
V/WindowManagerService(26716): finishedKey: client=android.view.IWindow
$Stub$Proxy@4414a008, force=true
V/WindowManagerService(26716): finishedKey:
client=android.os.BinderProxy@44132da0, force=true, last=null
(token=null)
V/WindowManagerService(26716): releasePendingPointer null
V/WindowManagerService(26716): finishedKey: client=android.view.IWindow
$Stub$Proxy@4414a008, force=true
V/WindowManagerService(26716): finishedKey:
client=android.os.BinderProxy@44132da0, force=true, last=null
(token=null)
V/WindowManagerService(26716): releasePendingPointer null
V/WindowManagerService(26716): finishedKey: client=android.view.IWindow
$Stub$Proxy@4414a008, force=true
V/WindowManagerService(26716): finishedKey:
client=android.os.BinderProxy@44132da0, force=true, last=null
(token=null)
V/WindowManagerService(26716): releasePendingPointer null
I/power (26716): *** set_screen_state 1
***BACK KEY PRESS LOG END***
***HOME KEY PRESS LOG BEGIN***
V/WindowManagerService(26716): Event: type=1 data=KeyEvent{action=0
code=3 repeat=0 meta=0 scancode=103 mFlags=8}
I/power (26716): *** set_screen_state 1
V/WindowManagerService(26716): Received key down: first repeat @
172434882
V/WindowManagerService(26716): Waiting for next key: now=172434386,
repeat @ 172434882
V/WindowManagerService(26716): Event: type=1 data=KeyEvent{action=1
code=3 repeat=0 meta=0 scancode=103 mFlags=8}
I/power (26716): *** set_screen_state 1
V/WindowManagerService(26716): Received key up: ignore repeat @
182433532
<< context.sendBroadcast(broadcastIntent) >>
I/NotificationService(26716): enqueueToast pkg=com.fana.oem.mod.test
callback=android.app.ITransientNotification$Stub$Proxy@43f69c68
duration=0
V/WindowManagerService(26716): Waiting for next key: now=172434541,
repeat @ 182433532
I/NotificationService(26716): enqueueToast pkg=com.fana.oem.mod.test
callback=android.app.ITransientNotification$Stub$Proxy@43f698e0
duration=0
V/WindowManagerService(26716): Adding window Window{4413eb78 Toast
paused=false} at 5 of 6
V/WindowManagerService(26716): Looking for focus: 6 = Window{44006b60
StatusBar paused=false}, flags=72, canReceive=false
V/WindowManagerService(26716): Looking for focus: 5 = Window{4413eb78
Toast paused=false}, flags=152, canReceive=false
V/WindowManagerService(26716): Looking for focus: 4 = Window{4405a978
StatusBarExpanded paused=false}, flags=70440, canReceive=false
V/WindowManagerService(26716): Looking for focus: 3 = Window{4404be20
TrackingView paused=false}, flags=131840, canReceive=false
V/WindowManagerService(26716): Looking for focus: 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false},
flags=66816, canReceive=true
V/WindowManagerService(26716): Found focus @ 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false}
I/power (26716): *** set_screen_state 1
V/WindowManagerService(26716): Relayout of Window{4413eb78 Toast
paused=false}: focusMayChange=true
V/WindowManagerService(26716): Relayout of Window{4413eb78 Toast
paused=false}: focusMayChange=false
V/WindowManagerService(26716): Remove Window{4413eb78 Toast
paused=false} client=4413ea70, surface=Surface(native-token=4606320)
V/WindowManagerService(26716): Looking for focus: 6 = Window{44006b60
StatusBar paused=false}, flags=72, canReceive=false
V/WindowManagerService(26716): Looking for focus: 5 = Window{4413eb78
Toast paused=false}, flags=152, canReceive=false
V/WindowManagerService(26716): Looking for focus: 4 = Window{4405a978
StatusBarExpanded paused=false}, flags=70440, canReceive=false
V/WindowManagerService(26716): Looking for focus: 3 = Window{4404be20
TrackingView paused=false}, flags=131840, canReceive=false
V/WindowManagerService(26716): Looking for focus: 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false},
flags=66816, canReceive=true
V/WindowManagerService(26716): Found focus @ 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false}
V/WindowManagerService(26716): Adding window Window{4414ba80 Toast
paused=false} at 6 of 7
V/WindowManagerService(26716): Looking for focus: 7 = Window{44006b60
StatusBar paused=false}, flags=72, canReceive=false
V/WindowManagerService(26716): Looking for focus: 6 = Window{4414ba80
Toast paused=false}, flags=152, canReceive=false
V/WindowManagerService(26716): Looking for focus: 5 = Window{4413eb78
Toast paused=false}, flags=152, canReceive=false
V/WindowManagerService(26716): Looking for focus: 4 = Window{4405a978
StatusBarExpanded paused=false}, flags=70440, canReceive=false
V/WindowManagerService(26716): Looking for focus: 3 = Window{4404be20
TrackingView paused=false}, flags=131840, canReceive=false
V/WindowManagerService(26716): Looking for focus: 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false},
flags=66816, canReceive=true
V/WindowManagerService(26716): Found focus @ 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false}
V/WindowManagerService(26716): Relayout of Window{4414ba80 Toast
paused=false}: focusMayChange=true
V/WindowManagerService(26716): Relayout of Window{4414ba80 Toast
paused=false}: focusMayChange=false
V/WindowManagerService(26716): releasePendingPointer null
V/WindowManagerService(26716): finishedKey: client=android.view.IWindow
$Stub$Proxy@43f66f50, force=true
V/WindowManagerService(26716): finishedKey:
client=android.os.BinderProxy@4413ea70, force=true, last=null
(token=null)
V/WindowManagerService(26716): releasePendingPointer null
V/WindowManagerService(26716): finishedKey: client=android.view.IWindow
$Stub$Proxy@43f66f50, force=true
V/WindowManagerService(26716): finishedKey:
client=android.os.BinderProxy@4413ea70, force=true, last=null
(token=null)
V/WindowManagerService(26716): releasePendingPointer null
V/WindowManagerService(26716): finishedKey: client=android.view.IWindow
$Stub$Proxy@43f66f50, force=true
V/WindowManagerService(26716): finishedKey:
client=android.os.BinderProxy@4413ea70, force=true, last=null
(token=null)
V/WindowManagerService(26716): releasePendingPointer null
V/WindowManagerService(26716): Remove Window{4414ba80 Toast
paused=false} client=4414b978, surface=Surface(native-token=3717136)
V/WindowManagerService(26716): Looking for focus: 6 = Window{44006b60
StatusBar paused=false}, flags=72, canReceive=false
V/WindowManagerService(26716): Looking for focus: 5 = Window{4414ba80
Toast paused=false}, flags=152, canReceive=false
V/WindowManagerService(26716): Looking for focus: 4 = Window{4405a978
StatusBarExpanded paused=false}, flags=70440, canReceive=false
V/WindowManagerService(26716): Looking for focus: 3 = Window{4404be20
TrackingView paused=false}, flags=131840, canReceive=false
V/WindowManagerService(26716): Looking for focus: 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false},
flags=66816, canReceive=true
V/WindowManagerService(26716): Found focus @ 2 = Window{440ba958
com.fana.oem.mod.test/com.fana.oem.mod.test.Download paused=false}
V/WindowManagerService(26716): releasePendingPointer null
V/WindowManagerService(26716): finishedKey: client=android.view.IWindow
$Stub$Proxy@43f2d5c8, force=true
V/WindowManagerService(26716): finishedKey:
client=android.os.BinderProxy@4414b978, force=true, last=null
(token=null)
V/WindowManagerService(26716): releasePendingPointer null
V/WindowManagerService(26716): finishedKey: client=android.view.IWindow
$Stub$Proxy@43f2d5c8, force=true
V/WindowManagerService(26716): finishedKey:
client=android.os.BinderProxy@4414b978, force=true, last=null
(token=null)
V/WindowManagerService(26716): releasePendingPointer null
V/WindowManagerService(26716): finishedKey: client=android.view.IWindow
$Stub$Proxy@43f2d5c8, force=true
V/WindowManagerService(26716): finishedKey:
client=android.os.BinderProxy@4414b978, force=true, last=null
(token=null)
V/WindowManagerService(26716): releasePendingPointer null
I/power (26716): *** set_screen_state 1
***HOME KEY PRESS LOG END***
--
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting