2012-03-04 164 views
2

我是Android應用程序開發的入門者,我在Java開發方面的經驗也很少。如何在Android中定義自定義事件和事件偵聽器?

我正在研究一個非常基本的上下文感知應用程序,我想了解如何通知我的某個自定義事件的活動類? (不像onClick())。所以如果我有一個負責監視某個資源的類。 (爲了簡單起見,我們假設一個Timer類,它監視時間並每小時通知Activity類)。

我的活動類如何「訂閱」並從Timer類偵聽此類事件?

如果您提供了一些代碼示例以及事件處理在Android/Java中的工作原理,我將非常感激。感謝您的時間和幫助!

回答

4

使用Broadcast意圖通知系統或應用程序/自定義事件的聽衆..

,只要您的自定義事件發生時使用sendBroadcast方法來發送Broadcast ..

Intent intent = new Intent(NEW_Intent); 
intent.putExtra(「Test」,Test1); 
sendBroadcast(intent); 

要創建一個新的廣播接收機(它將收聽你的事件/廣播),擴展BroadcastReceiver類並覆蓋onReceive事件處理程序。當接收到與用於r的意圖過濾器相匹配的Broadcast Intent時,將執行onReceive方法接收器。

在任何清單文件或代碼填寫您的接收器..

//在XML

<receiver android:name=」.ReceiverName」> 
<intent-filter> 
<action android:name=」com.paad.action.NEW_INTENT」/> 
</intent-filter> 
</receiver> 

//在代碼..

IntentFilter filter = new IntentFilter(NEW_INTENT); 
ReceiverName r = new ReceiverName(); 
registerReceiver(r, filter); 
+0

在我對廣播接收機註冊知之甚多之前,我以爲我必須添加這兩個(XML和代碼)。但是,發現你可以完成這些過程中的任何一個,你能否通過添加更多的單詞來糾正這個問題?而且,我認爲NEW_Intent應該可以在任何地方使用。那麼,你也可以補充一下嗎? – 2015-08-15 15:45:29

相關問題