【问题标题】:How do I publish an update to Dashclock when my application receives an Intent?当我的应用程序收到 Intent 时,如何向 Dashclock 发布更新?
【发布时间】:2013-03-22 10:11:11
【问题描述】:

我稍后在LocationManager 类中使用Android 的addProximityAlert 方法添加了位置接近度。

当用户的手机位于特定区域时,LocationManager 会向我的应用程序的BroadcastReciver 发送Intent,这是处理意图的类:

public class ProximityTrigger extends BroadcastReceiver {

    @Override
    public void onReceive(Context ctxContext, Intent ittIntent) {            
        System.out.println(ittIntent.getIntExtra(WidgetService.KEY_STOP_IDENTIFIER, -1));               
    }

}

我想在发生这种情况时使用 DashClock API 来显示更新。 DashClock 有一个publishUpdate 方法,可用于显示更新,但我只能从扩展DashClock 类的扩展类中使用它。这应该是可能的,但我似乎无法弄清楚如何。关于如何实现这一点的任何想法?

【问题讨论】:

    标签: java android android-intent dashclock


    【解决方案1】:

    由于扩展服务必须发出 publishUpdate 调用,因此您的接近触发广播接收器应使用广播或事件总线之类的东西来要求扩展发布更新。

    如果扩展未初始化,这意味着用户尚未添加它或 DashClock 未运行,则不会发生任何事情,这是预期的正确行为。一旦 DashClock 启动并添加了您的扩展程序,onUpdateData 将被调用,您将能够发布您的更新。

    有关您可以使用的实际类的一些想法,请参见下文:

    全球广播的完整代码 sn-p 可以在 DashClock 项目页面的issue 292 中找到。

    【讨论】:

    • 如果可以的话,我会给你几票。你对罗曼很有帮助!
    • 我在上述问题 292 中也添加了一个代码 sn-p 用于本地广播。
    • @KentonPrice,你能解释一下本地广播和全球广播之间的区别吗?我应该使用哪一个?我在 Google 上没有找到任何结果来解释两者之间的差异。谢谢。
    • 本地广播意味着只有您的应用可以看到它。默认情况下,所有应用都可以看到全局广播。
    猜你喜欢
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 2018-09-06
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多