2013-03-20 114 views
0

是否有更好的方式来实现一个GestureDetetor到所有活动,而不必单独定义一个GestureDetector?是否有可能为所有活动提供一个GestureDetector?

在我的场景中,我有10个活动,我希望他们所有人都具有相同的手势行为。例如,向右滑动将结束当前活动,并将用户带回主要活动。

我的选择似乎是

  1. 定义GestureDetector在我的每10个活动
  2. 扩展活动,并添加GestureDetector那里,然后从我的自定义活动延伸。

有没有更好的方法来实现这种行为?

+0

这有点含糊。也许如果你提供了关于你的特定问题的更多细节,并展示了你的一些代码。 – 2013-03-20 17:34:11

回答

0

一个简单的方法就是将GestureDetector设置在所有活动扩展的基类中。这是一种典型的方法,但每次都会创建一个新实例。

根据您的目标api,另一种方法是使用Application.registerActivityLifecycleCallbacks。您可以在Application class documentation中找到更多信息。这是api 14+。

不要忘了阅读的文档:

公共无效registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks回调)

添加新ComponentCallbacks的背景下, 将在被称为的基本应用程序与ComponentCallbacks相同的时间调用活动和其他组件的方法。请注意,您将来在适当时必须确保使用unregisterComponentCallbacks(ComponentCallbacks) ; 这不会被删除。

完成该操作后,请检查ActivityLifecycleCallbacks了解更多信息。你已经获得了所有典型的onCreate,start,resume等回调函数,相应的活动作为参数。

相关问题