【问题标题】:How to define custom events and event listeners in Android?如何在 Android 中定义自定义事件和事件监听器?
【发布时间】:2012-03-04 06:51:55
【问题描述】:

我是 Android 应用开发的初学者,我在 Java 开发方面的经验也很少。

我正在开发一个非常基本的上下文感知应用程序,我想了解如何通知我的活动类一些自定义事件? (与 onClick() 不同)。因此,如果我有一个负责监视某些资源的类。 (为简单起见,我们假设有一个 Timer 类,它监控时间并每小时通知 Activity 类)。

我的活动类如何“订阅”并监听来自 Timer 类的此类事件?

如果您提供一些代码示例以及事件处理在 Android/Java 中的工作方式,我将不胜感激。感谢您的时间和帮助!

【问题讨论】:

    标签: java android events callback


    【解决方案1】:

    使用Broadcast Intents 通知侦听器系统或应用程序/自定义事件..

    每当您的自定义事件发生时,使用sendBroadcast 方法发送Broadcast..

    Intent intent = new Intent(NEW_Intent);
    intent.putExtra(“Test”,Test1);
    sendBroadcast(intent);
    

    要创建一个新的广播接收器(它将监听您的事件/广播),扩展BroadcastReceiver 类并覆盖onReceive 事件处理程序。onReceive 方法将在Broadcast Intent 被执行时执行收到的匹配用于注册接收者的 Intent 过滤器。

    在清单文件或代码中注册您的接收器..

    //在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);
    

    【讨论】:

    • 在我了解广播接收器注册之前,我想我必须添加这两个(xml 和代码)。但是,发现您可以执行这些过程中的任何一个,请您多说几句来纠正这个问题吗?而且,我认为 NEW_Intent 应该可以在任何地方使用。那么,请您也添加一下吗?
    【解决方案2】:

    您可以使用 Intent 类来做到这一点: http://developer.android.com/reference/android/content/Intent.html

    【讨论】:

      猜你喜欢
      • 2017-02-18
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 2017-03-20
      相关资源
      最近更新 更多