Symbian应用程序作为后台进程
时间:2020-03-06 14:21:54 来源:igfitidea点击:
是否有可能创建将
在symbian智能手机上用作后台进程?
解决方案
我们可以大致估算出来,但是J2ME(手机上Java的版本)可能不是实现此目的的正确技术。
- 开机时启动MIDlet(用于手机的Java应用程序)的启动充其量是棘手的,而无需编写一个小的Symbian OS C ++模块来为我们启动它。如果仍然要尝试,请查看MIDP规范(http://java.sun.com/javame/reference/apis/jsr118/)中的PushRegistry类。内容处理API可能也提供了一些方法来实现它(http://java.sun.com/javame/reference/apis/jsr211)。当我们准备放弃时,请使用C ++。
- 使MIDlet成为背景并不难。手机的"菜单"键将为我们完成此操作。以编程方式,Canvas.setCurrent(null)有很大的工作机会。尝试通过提供完全透明的GUI来欺骗电话,并且不处理任何键盘活动将完全不起作用。即使在应用程序管理系统调用了MIDlet.pauseApp()的重载之后,在MIDlet中创建和启动单独的线程也应使我们保持运行状态。
- 真正的问题是,除非我们创建MIDlet,否则MIDlet将没有任何进程间通信系统。通常的做法是通过环回套接字连接传输数据。这不是模拟IPC的好方法。我认为,共享RMS记录只能在同一MIDlet套件内完成(我们可以将多个MIDlet打包到同一.jar文件中)。用于通过文件连接创建提供者/消费者数据流的代码更加难看,并且会引发安全问题。
没有有关我们要使用它的更多信息,我的回答是:也许但我们可能不应该尝试。
我们将在MIDP 3.0(http://jcp.org/en/jsr/detail?id=271)中具有对后台MIDlet的内置MIDP支持。不要屏住呼吸让设备出现,但是可能需要一段时间。
(请注意,一些Symbian OS设备不仅具有MIDP S-E p990,例如https://developer.sonyericsson.com/site/global/products/phonegallery/p990/p_p990.jsp)。
正如已经指出的那样,获得更多有关我们试图实现的产品功能的信息通常可能是有益的,而这不只是一种为猫皮的方法。