有没有更好的方法将GestureDetetor实现到所有活动,而不必单独定义GestureDetector?
在我的场景中,我有10个活动,我希望他们所有人都能为手势做出相同的行为。例如,向右滑动将结束当前活动并将用户带回主活动。
我的选择似乎是
有没有更好的方法来实现此行为?
答案 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等回调函数作为参数。