Android提供的onKey(),OnKeyDown()和dispatchKeyEvent()方法有什么区别?
我想知道什么时候和在哪里可以使用。
请说明一下。Android提供的onKey(),OnKeyDown()和dispatchKeyEvent()方法之间的区别?
27
A
回答
41
追踪5.1 Source for the View Class的源代码。看起来dispatchKeyEvent()
是系统调用的第一种方法。重载它将阻止任何和所有关键事件被调用,除非调用基础版本。
dispatchKeyEvent()
的第一步是尝试将事件传递给onKeyListener
(如果有的话)。这是在调用onKey()
时。如果onKey()
执行返回true
,dispatchKeyEvent()
将返回那里,其他事件将不会被调用。
如果没有onKeyListener
或onKeyListener
的onKey()
方法返回false
,然后dispatchKeyEvent()
将调用KeyEvent
的dispatch()
方法。然后,它将依次调用视图中的KeyEvent.Callback
界面中的所有方法。这包括onKeyDown()
和onKeyUp()
。
相关问题
- 1. 事件和方法之间的区别
- 2. getRootNav()和navCtrl()方法之间的区别
- 3. “__method__”和“方法”之间的区别
- 4. PrintWriter.printf和PrintWriter.format方法之间的区别
- 5. EventLog.WriteEntry和EventLog.WriteEvent方法之间的区别
- 6. doGet和doHead方法之间的区别
- 7. Map.put和Map.putAll方法之间的区别?
- 8. GET和POST方法之间的区别?
- 9. $ http.get和方法之间的区别:'GET'
- 10. Android服务与内容提供者之间的区别
- 11. 在android中的httppost和httpget方法之间的区别?
- 12. ThreadPoolExecutor - 提交和执行方法之间的区别?
- 13. 什么@android之间的区别:和android:
- 14. 驱动程序和提供程序之间的区别
- 15. Maven范围编译和提供JAR包装之间的区别
- 16. 夹具和数据提供者之间的区别yii2
- 17. onKey onKeyDown无法正常工作
- 18. Onkeydown返回false和返回super.onkeydown()之间有什么区别?
- 19. CA2000的级别变量和方法之间的区别警告
- 20. 类方法和实例方法之间的区别?
- 21. 下划线js之间的区别_each方法和_.invoke方法
- 22. 跟进:类方法和实例方法之间的区别?
- 23. UdpClient.Send方法和UdpClient.Client.Send方法之间的区别
- 24. android sha224和python之间的区别sha224
- 25. onPeriodicNotification和onMarkerReached之间的区别 - Android
- 26. @id和@android之间的区别:id
- 27. Android中SQLiteException和SQLException之间的区别?
- 28. 离子和Android之间的区别sdk
- 29. TextView- setHeight和setTextSize之间的区别:Android
- 30. style.xml和theme.xml android studio之间的区别?
不能说更好! – faizal
很好的解释! – ForeverLearning
因此,我可以不使用'onKeyDown'和'onKeyUp',而只是使用'dispatchKeyEvent'?这有什么缺点吗?我必须这样做,因为'onKeyDown'不会因为某些原因而触发大部分的键。当我更改为'dispatchKeyEvent'时,它工作。 – keinabel