android calculator里面
当我输入2+2然后会输出结果4,然后按清除clear,则结果被清除,but当我按back键,回到所有ap的shortcut界面,然后点calculator重新进入calculator,结果4又被显示到界面上面,这是什么原因造成的呢?一般AP中的back键是怎么被监听到的?[问题点数:20分]
zhq56030207
(Hello_Miss) 等 级:
结帖率:96.71%
楼主发表于:2011-04-15 13:45:44如题?程序片段是怎样の?
当我输入2+2然后会输出结果4,然后按清除clear,则结果被清除,but当我按back键,回到所有ap的shortcut界面,然后点calculator重新进入calculator,结果4又被显示到界面上面,这是什么原因造成的呢?一般AP中的back键是怎么被监听到的?[问题点数:20分]
zhq56030207
(Hello_Miss) 等 级:
结帖率:96.71%
楼主发表于:2011-04-15 13:45:44如题?程序片段是怎样の?
onPause()在这个里面保存当前的数据值。可以放到数据库中,也可以通过文件保存。
//
@Override
public void onPause() {
super.onPause();
mLogic.updateHistory();
mPersist.setDeleteMode(mLogic.getDeleteMode());
mPersist.save();
}
//
程序在“=”按钮的响应命令里实现了保存当前结果的动作,在clear之前已经保存好了,下次进入时,读取数据显示
不过当系统内存不够的时候,压入栈的activity可能被系统kill掉已释放内存。
里面,下次重新开启的时候读取最近一次的计算结果。adb pull data/data/com.android.calculator2/files/calculator.data .
cat calculator.data
请问你是看的3.0的code?
我是说 你在honeycomb的板子上测得 还是emulator上?
是线程吗?如果是线程,他的那个取消登陆是这么实现的?
我的模拟器是honeycomb的,我看到的源码是我们公司优化过的,但我想这种应用层的小程序应该没改过。
或者你没看懂具体的操作步骤~~~~~不过该issue确实是存在の
不过当系统内存不够的时候,压入栈的activity可能被系统kill掉已释放内存,还有就是可以去一些专门的android技术论坛去找找,www.connectionwe.com,推荐一个
adb pull data/data/com.android.calculator2/files/calculator.data .比较下back和clear + back
String text = mHistory.getText();
if (MARKER_EVALUATE_ON_RESUME.equals(text)) {
if (!mHistory.moveToPrevious()) {
text = "";
}
text = mHistory.getText();
evaluateAndShowResult(text, CalculatorDisplay.Scroll.NONE);
} else {
mResult = "";
mDisplay.setText(
text, scroll ? CalculatorDisplay.Scroll.UP : CalculatorDisplay.Scroll.NONE);
mIsError = false;
}
}这些应该都一样,我觉得这个应该没有改动。现在3.0已经开放源码了吗?
我的honeycomb模拟器就是原版的啊
第二:按clear ,5消失了 然后按back键一次,然后再进入calculator,5又存在了(这是一个错误)然后你再clear 按back 回来 5还是存在(这样循环下去 感觉5永远都不会被clear)第三:不按clear,按back 5应该不消失(这是正确的)
你可以再操作一次,就可以发现了~~~
大家的honeycomb模拟器都有这个问题吗?
既然你的clearWithHistory函数没改过,怎么能没有这个问题呢????
我实在tablet上面验证の
我觉得不是...我觉得你的源码还是有问题的 不知道为什么honeycomb的模拟器上是正常的?
但是确切的说 这个源码在真正的板子上面是有问题の 而且如果连续的同时按好多个键,也会出现一些虚拟的字符~~~
我们还在做老版本的一些东西
而且如果连续的同时按好多个键,也会出现一些虚拟的字符~~~
这个有出现吗?
前一个bug我已经解掉了
后面的bug尚未找到原因~~~