[JavaME]解决来电问题(Incoming Call)

简介:

比如你的游戏正在进行中,却突然一个电话,那么你能保证你的游戏不死机吗?
解决来电问题,唯一需要做的就是重载Canvas的hideNotify()方法。

just like this:

None.gif boolean  gameIsPaused;
None.gif 
ExpandedBlockStart.gif
protected   void  showNotify()  {  gameIsPaused = false;
ExpandedBlockEnd.gif}

None.gif 
ExpandedBlockStart.gif
protected   void  hideNotify()  {
InBlock.gif  gameIsPaused 
= true;
ExpandedBlockEnd.gif}

None.gif 
ExpandedBlockStart.gif
private   void  theMainGameLoop()  {
ExpandedSubBlockStart.gif  
while (gameIsRunning) {
ExpandedSubBlockStart.gif    
if (!gameIsPaused) {
InBlock.gif      
// process events and update the screen
ExpandedSubBlockEnd.gif
    }

ExpandedSubBlockEnd.gif  }

ExpandedBlockEnd.gif}


不过,正像下面的帖子中谈到的,Nokia 7650机型的问题是无法克服的,当你接电话时关闭了游戏,那么电话打完后你也无法启动游戏了,除非重启手机。

可供参考的帖子:
http://forum.java.sun.com/thread.jspa?forumID=76&threadID=581789
http://forum.java.sun.com/thread.jspa?forumID=76&threadID=376907

参考的资料《Nokia 中的暂停功能》:
实际上,当MIDlet 隐藏时,它总是处于暂停状态。这在游戏应用软件中尤其重要,因为,如果在游
戏被隐藏时没有立刻暂停,游戏者可能会输掉游戏。
可以用类Displayable 的方法isShown()或者类Canvas 或CustomItem 的方法 hideNotify() 来暂停MIDlet。
在Canvas 对象离开显示屏后,方法hideNotify()将被立刻调用。在方法hideNotify()中创建
一个自动暂停机制,用来暂停线程、关闭计时器、保存重要数值等。参见下面的代码范例:
protected void hideNotify()
{
//执行暂停时的操作
remainingTime = endTime – System.currentTimeMillis();
myThread.stop();
autoPaused = true;
repaint();
// Include a pause test in paint() method to check if paused
// paint a pause message on screen if autoPaused true
}
protected void paint(Graphics g)
{
// paint game screen here
if (autoPaused == true) {
// paint pause message
}
}
暂停之后的操作是继续,故需要把Continue 选项显示给用户。

目录
相关文章
|
12月前
|
Python
Cobalt Strike的多种上线提醒方法(下)
Cobalt Strike的多种上线提醒方法
124 0
|
12月前
|
机器人 数据安全/隐私保护 Python
Cobalt Strike的多种上线提醒方法(上)
Cobalt Strike的多种上线提醒方法
350 0
|
网络协议 Docker 容器
利用PingTunnel上线cobalt strike
利用PingTunnel上线cobalt strike
利用PingTunnel上线cobalt strike
|
传感器 编解码 安全
什么? Macbook 也有 Touch ID ! 原来都是因为它... | 众筹星探
自从 iPhone 有了 Touch ID ,你会发现指纹识别真的是一种简单好用的东西。它能让你不需要依靠冗长复杂的密码就能用简单地指纹进行解锁,又快又安全。但你有没有想过如果也能在你的 PC 甚至是 Macbook 上也配上指纹识别,那会是怎样?
145 0
什么? Macbook 也有 Touch ID ! 原来都是因为它... | 众筹星探
|
C++
Epic 官方视频教程《 Battery Collector》源码+超详细注释【C++】【UE4】
Epic 官方视频教程《 Battery Collector》源码+超详细注释【C++】【UE4】
233 0
Epic 官方视频教程《 Battery Collector》源码+超详细注释【C++】【UE4】
|
数据库
艾伟_转载:获取confirm返回值的故事
  也许很多人看了这个标题就会不屑看下去,大可以说网上多的去了这种问题的文章,的确,当我碰到这个问题的时候,我也首先在网上找了很多资料,但是没有合适的,或者说没有讲的清晰的,而后,我又问了几个牛人,以及几位同事,也都没有搞懂,后来在我老大的帮助下,最终还是解决了,所以我觉得有这个必要写出来给大家分享...
705 0
|
.NET
艾伟:Tip:自定义UpdatePanelTrigger
  大家在使用UpdatePanel的时候有没有遇到过这种情况呢?   页面上放置着3到4的UpdatePanel,它们互相独立,并且UpdateMode都是Condition,这意味着没有哪个UpdatePanel每次都会更新。
907 0
|
Java
营销活动送红包之更改现金活动状态(alipay.marketing.campaign.cash.status.modify)-java版
说明: 本帖是测试营销活动送红包的更改现金活动状态接口,本帖是使用沙箱环境测试的,仅供参考!! 是否需要签约:需要,【如何签约】  是否支持沙箱环境:支持 接口文档:查看  sdk下载:下载  营销活动送红包沙箱Java版demo:download:营销活动送红包Java版.
495 0
|
Java
营销活动送红包之触发现金红包活动(alipay.marketing.campaign.cash.trigger)-java版
说明: 本帖是测试营销活动送红包的触发现金红包活动接口,本帖是使用沙箱环境测试的,仅供参考!! 是否需要签约:需要,【如何签约】  是否支持沙箱环境:支持 接口文档:查看  sdk下载:下载  营销活动送红包沙箱Java版demo:download:营销活动送红包Java版.
651 0
|
Java
koubei.marketing.campaign.activity.offline(活动下架接口)java版
说明:      本帖是利用支付宝正式环境测试账号测试活动下架接口接口,请求中根据文档传入了必传参数,大家可以配置自己的环境,根据自己的需求严格按照文档要求添加相关的可选参数,此demo仅供参考 测试环境:Eclipse+JDK1.
450 0