2013-03-20 95 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等回調函數,相應的活動作爲參數。

相關問題