0

我正在开发一个应用程序来执行以下操作。

  1. 跟踪来电/去电。
  2. 如果用户接听电话,断开电话后会弹出一个屏幕。(用户必须填写一些信息,内容将保存在(Sqlite)数据库中)

现在我正在做的是:-

  1. 首先制作不同的入口点(自动启动)&这是应用程序的入口点。(逻辑工作正常)
  2. 实现跟踪来电/去电的电话监听器(逻辑工作正常)
  3. 当通话断开时,会弹出详细屏幕,用户可以填满屏幕。(逻辑工作正常)
  4. 但问题是当用户接收/执行呼叫并返回应用程序时,应用程序无法维护变量状态(如文件连接、应用程序中使用的全局变量),它们都会被重置。这个问题我只在呼入/呼出时间得到。

    • 我使用了运行时持久性存储,但在将记录插入数据库的情况下它不起作用。
    • 我重新初始化了 Database 类,但它根本不起作用。

请让我知道,为什么我会遇到这个问题。

4

1 回答 1

2

“应用程序无法维护变量状态(如文件连接、应用程序中使用的全局变量),它们都会被重置”

我假设您正在尝试将这些“全局”变量维护为“静态”变量。请记住,静态变量仅对同一个应用程序实例是全局的。在这种情况下,Phone Listener 在不同的应用程序(电话应用程序)下被调用,因此这些变量与您在应用程序中看到的变量不同。

为了解决这个问题,我建议做两件事:

a) 使用 RuntimeStore 提供存储共享(全局)变量的位置:

http://supportforums.blackberry.com/t5/Java-Development/Create-a-singleton-using-the-RuntimeStore/ta-p/442854

b)让您的侦听器尽可能少做,使用全局事件将所需的信息传递回您的应用程序上下文中的应用程序:

http://supportforums.blackberry.com/t5/Java-Development/Global-Events-and-Global-Event-Listeners/ta-p/444814

但也许我没有清楚地理解你的问题,如果没有,请澄清。

于 2013-09-11T18:01:58.907 回答