2012-03-04 119 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

相关问题