是否可以为所有活动安装一个GestureDetector?

时间:2013-03-20 17:32:41

标签: android android-gesture

有没有更好的方法将GestureDetetor实现到所有活动,而不必单独定义GestureDetector?

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

我的选择似乎是

  1. 在我的10个活动中定义GestureDetector
  2. 扩展活动并在那里添加GestureDetector,然后从我的自定义活动扩展。
  3. 有没有更好的方法来实现此行为?

1 个答案:

答案 0 :(得分:0)

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

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

不要忘记阅读文档:

  

public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback)

     

将新的ComponentCallbacks添加到Context的基本应用程序中,   它将与ComponentCallbacks同时调用   调用活动方法和其他组件。请注意你   必须确保使用unregisterComponentCallbacks(ComponentCallbacks)   在适当的时候; 不会删除此内容。

执行此操作后,只需查看ActivityLifecycleCallbacks以获取更多信息。你已经获得了所有典型的onCreate,start,resume等回调函数作为参数。