请问高手:Brew中可以实现单例模式吗?

lijiangyun 2009-06-12 11:15:28
如题:本人做输入法模块,想把输入法接口做成单例模式的,即输入法接口只创建一次,这样不用每个输入框都创建输入法接口,而且可以达到输入数据共享;但怎样保持输入法接口单例呢?好像很难做到唉!
...全文
1839 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijiangyun 2009-09-17
  • 打赏
  • 举报
回复
已在OEM层通过static方式实现成单例模式;亦可在线输入;
nicefuture 2009-09-17
  • 打赏
  • 举报
回复
另外,提醒LZ, 单实例是有具体使用场合的,不能想用就用。

对于输入法接口, 你再好好看看, 应该做成单实例吗?? ???
nicefuture 2009-09-17
  • 打赏
  • 举报
回复
请注意,BREW中实现SingleTon没有想象中的简单。 这是因为, 除了实现SingleTon以外, 你还要保证SingleInstance中分配的内存,是在系统环境下分配的。 否则, 单第一个创建单实例接口的App退出后,该接口实例内存会被自动释放,从而导致无效。

对于OEM,实现为Static方式,是很方便的。

而要实现为动态的方式, 如何保证内存分配不是在App环境下的, 就需要一定的技巧了。 因为,默认切换环境的API没有直接对应的接口可以被使用
kingfenggg 2009-09-17
  • 打赏
  • 举报
回复
需要好好理解单例模式的使用条件
iBug168 2009-09-16
  • 打赏
  • 举报
回复
还有一种方式可以模拟实现全局变量。
找一个module存放即可。。。如果没有一直加载的module可以自己写一个module.

只要把这个输入法的数据放入到共享module中即可。。。
trancebaby 2009-06-16
  • 打赏
  • 举报
回复
输入法接口做成单例模式有什么好处呢?

需要的时候创建一个应该比较好吧,这样里面的状态比较独立不会互相影响.
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hhygcy 的回复:]
Brew里面不支持静态变量
但是你可以搞个类似的全局变量
因为你在什么时候都可以GETAPPINSTANCE()拿到application的句柄
所以建议你把你的输入法模块放在application类里面, 就像当于全局了
[/Quote]
好办法
hhygcy 2009-06-12
  • 打赏
  • 举报
回复
Brew里面不支持静态变量
但是你可以搞个类似的全局变量
因为你在什么时候都可以GETAPPINSTANCE()拿到application的句柄
所以建议你把你的输入法模块放在application类里面, 就像当于全局了
sunyymq 2009-06-12
  • 打赏
  • 举报
回复
不难做啊,你再封装一层就是了。
zsf81 2009-06-12
  • 打赏
  • 举报
回复
你是OEM就可以改输入法控件,不是的话就自己封类似widget这样的控件,封完后,自己再调用控件就可以实现。
hhygcy 2009-06-12
  • 打赏
  • 举报
回复
ISHELL 其实也是全局的 IAPPLET 里面的一个变量, 我们就相当于在里面加了一个变量。 (系统不过是和我们在做一样的事情罢了)
但是你不喜欢这种风格就没有办法了 呵呵
lijiangyun 2009-06-12
  • 打赏
  • 举报
回复
那想想看,手机里面这么多app,每个app都要去修改唉。。。

而且单例的实现要在widget里面实现,在widget里面获取app

的属性,这种调用我不能忍受唉。。。

有没有更“全局”的,控件级的,类似ISHELL这样的,但是

ISHELL又不能修改。。。
  • 打赏
  • 举报
回复
app创建或销毁时增加重复的代码,必须的呀
lijiangyun 2009-06-12
  • 打赏
  • 举报
回复
谢谢各位的回复!
2楼的确实是一种可行的办法,可以做到系统里只创建一套输入法接口,
但是付出的代价是要在所有的app里面保存一个输入法接口指针,而且
要在app创建或销毁时增加重复的代码。。。而且输入法要跟控件挂钩
的,这样意味控件里面要通过GETAPPINSTANCE去获取app的输入法指针,
这样错乱的架构我宁愿选择一个输入框创建一套输入法接口。。。

2,854

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧