是否有更好的方式来实现一个GestureDetetor到所有活动,而不必单独定义一个GestureDetector?是否有可能为所有活动提供一个GestureDetector?
在我的场景中,我有10个活动,我希望他们所有人都具有相同的手势行为。例如,向右滑动将结束当前活动,并将用户带回主要活动。
我的选择似乎是
- 定义GestureDetector在我的每10个活动
或 - 扩展活动,并添加GestureDetector那里,然后从我的自定义活动延伸。
有没有更好的方法来实现这种行为?
是否有更好的方式来实现一个GestureDetetor到所有活动,而不必单独定义一个GestureDetector?是否有可能为所有活动提供一个GestureDetector?
在我的场景中,我有10个活动,我希望他们所有人都具有相同的手势行为。例如,向右滑动将结束当前活动,并将用户带回主要活动。
我的选择似乎是
有没有更好的方法来实现这种行为?
一个简单的方法就是将GestureDetector设置在所有活动扩展的基类中。这是一种典型的方法,但每次都会创建一个新实例。
根据您的目标api,另一种方法是使用Application.registerActivityLifecycleCallbacks
。您可以在Application class documentation中找到更多信息。这是api 14+。
不要忘了阅读的文档:
公共无效registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks回调)
添加新ComponentCallbacks的背景下, 将在被称为的基本应用程序与ComponentCallbacks相同的时间调用活动和其他组件的方法。请注意,您将来在适当时必须确保使用unregisterComponentCallbacks(ComponentCallbacks) ; 这不会被删除。
完成该操作后,请检查ActivityLifecycleCallbacks了解更多信息。你已经获得了所有典型的onCreate,start,resume等回调函数,相应的活动作为参数。
这有点含糊。也许如果你提供了关于你的特定问题的更多细节,并展示了你的一些代码。 – 2013-03-20 17:34:11