是否有更好的方式來實現一個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