是否可以创建将要使用的Java应用程序 在symbian智能手机上作为后台进程工作?
答案 0 :(得分:4)
你可以近似它,但J2ME(手机上的java版本)可能不是正确的技术。
启动MIDlet(手机的Java应用程序),当手机开机时,最好不要编写一个小型的Symbian OS C ++模块来为你启动它。如果您还想尝试,请查看MIDP规范中的PushRegistry类 (http://java.sun.com/javame/reference/apis/jsr118/)。 Content Handling API也可能提供一些方法(http://java.sun.com/javame/reference/apis/jsr211)。当你准备放弃时,用C ++做。
背景MIDlet并不难。手机的“菜单”键将为您完成。以编程方式,Canvas.setCurrent(null)有很好的工作机会。尝试通过提供完全透明的GUI来欺骗手机而不处理任何键盘活动绝对不起作用。在MIDlet中创建和启动一个单独的Thread应该允许你在应用程序管理系统调用MIDlet.pauseApp()的重载之后保持运行。
真正的问题是MIDlet除非你制作一个,否则不会有任何进程间通信系统。通常的方法是使用环回套接字连接来传输数据。不是模拟IPC的好方法。我认为,共享RMS记录只能在同一个MIDlet套件中完成(你可以将几个MIDlet打包到同一个.jar文件中)。通过文件连接创建提供者/消费者数据流的代码甚至更加丑陋,并且会引发安全问题。
如果没有关于你想要用它的更多信息,我的回答是:也许你应该不尝试。
答案 1 :(得分:2)
您将在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)。
正如已经指出的那样,获得有关您正在尝试实施的产品功能的更多信息可能会有所帮助 - 通常不止一种方法可以为猫提供皮肤。