我正在通过扩展DialogPreference
类在Android中编写一些自定义首选项对话框.但是,我对这需要的锅炉板代码量有点担心,因为似乎有很多行为需要测试.
例如,一些偏好对话框的这个例子是相当典型: http://svn.jimblackler.net/jimblackler/trunk/workspace/NewsWidget/src/net/jimblackler/newswidget/NumberPreference.java
特别是,onSave()
/ RestoreInstanceState()
methods和"类SavedState"部分是必需的,以便在方向更改时保留对话框的当前更改是非常冗长和复杂的.
有没有人有更简洁的方式编写DialogPreference类的技巧?
我需要一些要在大long [] s上执行的操作非常快.我能看到的唯一选择是使用Android NDK.任何人都可以根据哪些设备可以使用该应用程序以及维护我的应用程序的含义,总结NDK对我的应用程序的作用?
我看到你需要指定你想要编译C代码的架构,比如ARM和Intel.当Android的新架构出现时会发生什么?每次出现新架构时,我都必须更新我的应用程序吗?
我正在为Java中的图形应用程序添加自动保存功能.应用程序定期自动保存当前文档,并在退出时自动保存.当用户启动应用程序时,将重新加载自动保存文件.
如果自动保存文件以任何方式损坏(我假设当文件处于保存状态时断电会这样做吗?),用户将失去工作.如何防止这种情况并尽我所能保证自动保存文档处于一致状态?
更复杂的是,要自动保存文档,我需要保存一个.xml文件和几个.png文件.此外,.png保存发生在JNI的C代码中.
我当前的策略是使用扩展名.png.tmp编写每个.png,编写扩展名为.xml.tmp的.xml文件,然后重命名每个文件以删除.tmp部分,直到最后一个.xml.在启动时,我只加载自动保存文件,如果我能找到.xml文件并忽略.xml.tmp文件.在重命名新文档的.xml.tmp文件之前,我也不会删除以前的自动保存文档.
我想我对写入磁盘时会发生什么的了解很少.我知道在使用文件时,您可以拥有软件读/写缓冲区,以及操作系统和硬件缓冲区,并且所有这些都需要刷新.我很困惑如何确切地知道什么东西真的被写入磁盘以及我可以做些什么来保护自己.重命名操作是否会执行任何操作以确保刷新缓冲区?