【问题标题】:how to exchange data between two Blackberry Applications?如何在两个黑莓应用程序之间交换数据?
【发布时间】:2010-10-12 01:22:45
【问题描述】:

为了在应用程序之间交换数据,我创建了 2 个应用程序,一个是 UI 应用程序,另一个是后台应用程序,通过设置 alternate entrypoint

我能够找到similar question,但无法在那里获得我需要的帮助

我能够创建Global Events and a Global Listener, 但我的问题是如何将数据从一个应用程序传输到另一个应用程序。

在 UI APPLICATION 我们可以发布 globalEvent

ApplicationManager.getApplicationManager().postGlobalEvent(0xba4b84944bb7);

在后台应用中我们可以监听并发送确认

public void eventOccurred( long guid, int data0, int data1, Object object0, Object object1)
    {
        //Is this the GlobalEvent we are waiting for?
        //Long = com.samples.globalEventFiring.GlobalEventListening
        if (guid == 0x7d3a74a5ccfe6483L)
        {
            //Yes it is.

            System.out.println("Acknowledgement received.");

            UiApplication.getUiApplication().invokeLater(new Runnable()
            {
                public void run()
                {
                    Dialog.alert("Event was fired and acknowledged.");
                }
            });
        }
    }

但是如何将数据从后台应用程序传输到ui应用程序。UI应用程序如何访问后台应用程序的数据或对象。

【问题讨论】:

    标签: java blackberry


    【解决方案1】:

    您可以使用Runtime storage 作为中心位置,在后台和 UI 线程之间共享您的数据。

    【讨论】:

    • 但是它们之间不能直接交换吗?
    • 这个运行时存储是否也需要注册才能在模拟器上进行测试?请回复紧急?
    • 什么注册?如果您询问代码签名,则在模拟器上进行测试不需要代码签名。
    • 运行时存储让 2 个应用程序直接共享内存。在 BB 上,“进程”实际上是同一 JVM 中的独立线程。您可以在 RT 商店中分享任何您想要的东西。
    【解决方案2】:

    您可以使用事件系统中的 int 和 Object 参数在应用程序实例之间传递数据。发布事件时,使用采用整数和对象的postGlobalEvent 重载。并在事件处理程序中,根据需要向下转换 object0 或 object1。

    【讨论】:

    • 感谢您的回复,我还有 1 个疑问。来自 UI 应用程序我将发布一个 GlobalEvent,在此调用中,后台应用程序将与服务器交互并获取请求的数据,但在 UI 应用程序中,我只想在收到后台应用程序的结果后继续。我应该如何使 UI 应用程序依赖于后台应用程序。
    • 从后台应用向 UI 应用发送事件。您必须设置 UI 应用程序以等待发布事件 - 使用锁定或轮询。但这与跨应用通信不同。
    • stackoverflow.com/questions/3911450/… 请帮我解决我的第二个疑问,这将是很大的帮助
    • 抱歉不便已上传到这里stackoverflow.com/questions/3918565/…
    猜你喜欢
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多