1、创建了一个对象后:
(1)没有在适当的地方释放掉
(2)在应该释放的地方没有做释放操作
例如:下面一段程序:
m_progressDlg = ProgressDialog.show(this, getString(R.string.market),getString(R.string.is_visiting), true);
new Thread() {
public void run() {
boolean downloadOver = downloadwidgetInfo();
if (downloadOver) {
if(null != m_progressDlg)
m_progressDlg.dismiss();//该释放这个对象,如果不释放,应用会很容易出错。
if(flag)
startIntent();
finish();
} else {
Message msg = mHandler.obtainMessage(mUphoneMain.Download_Fail);
mHandler.sendMessage(msg);
}
}
}.start();
上面一段代码的隐患就在于else中没有释放progressDlg对象。如果程序一旦出错,就会导致该progressDlg一直显示在屏幕上,使应用程序死在这个界面上。
2、逻辑上严重错误:
(1)如果一个activity是在应用程序中处于过渡的作用,例如主要做一些下载等工作。那么在这个activity中最好不要用Dialog相关的程序。如果有,这样会导致一旦此activity在联网或者做某些事情导致异常的时候,就会发出致命错误。因为容易出现这样一种情况:就是在应用程序挂掉的同时,通知了Dialog去在这个activity之上显示一个Dialog。因为程序挂掉了,所以这个dialog就没有了activity上下文Context的载体。
例如:有三个activity如下:
activity1:入口
activity2:过渡,负责下载网络数据,如果下载失败,就跳出dialog报错。如果成功就进入activity3.
activity3:
上面这个例子就会出现这种情况:activity2由于系统突然的异常但又突然的恢复后,有可能造成的activity2链接网络部分出现致命错误而被dalvic虚拟机kill掉activity2.而此时你的程序有可能捕获了异常,并将发送消息来启动一个异常dialog的提示框。因为dialog的Context上下文事activity2,但是activity2此时被killed了。从而出现应用程序的异常终止。
(2)在new一个Thread的时候,要特别注意这个Thread是否能被控制,或者是否要去控制。特别是在多个线程启动的时候,在android上很难像写java应用程序一样很容易的控制住线程。在多个线程启动的时候,一定要注意线程之间的逻辑。多个线程内部的程序的运行是否需要依赖其他线程内部的代码的功能的完成。
例如:
new Thread1(){
public void run(){
Test1();//其中创建了一个类中的一个list数据结构。
}
}.start();
new Thread2(){
public void run(){
Test2();//其中用到了Thread1中创建的list的数据结构
}
}.start();
上面的这个程序就是线程2用到了线程1中创建的一个数据结构,如果第一个线程没有完成,第二个线程启动就会报错。
3.混乱的思路造成混乱的代码,混乱的代码造成一个应用的混乱的bug。
(1)放弃很多类都使用到的函数公用化
(2)放弃主线程操作事件而采用多线程混乱执行操作。这样容易造成线程的不可控以及逻辑的不明朗。为后续整理代码的过程造成理解上的错误。
(3)做应用的逻辑思路不明朗,造成应用开发过程中的解决方案的频繁修改,从而导致代码很难维护
(4)产品定义的频繁改动造成开发人员没有明确的思路,在工程日前很紧的情况下造成代码逻辑错误的增加
(5)只注重功能性代码的实现而未考虑异常的捕获以及对可能出现的错误没有采取措施,这是bug出现最多的方面
(6)把写damon小实例和写工程代码分开,最好别在工程代码中测试你的damon,你的一时懒惰容易造成代码的累赘和丑陋
4.总结:
(1)明确自己要做的,有目的性的构造自己的应用逻辑。
(2)别懒惰。别为了复制而复制,如果你认为一个类中的部分代码在另一个类中需要用,别简单的复制过来,想想第一条。
(3)把能够功能化的代码函数化,把能够复用的代码公共化,形成功能化的构件化代码的思想。
本文来自CSDN博客,转载请标明出处:
http://blog.csdn.net/wbw1985/archive/2010/04/22/5514476.aspx
分享到:
相关推荐
android java编程注意事项
### Android高效编程注意事项 在Android应用开发过程中,为了提高应用程序的性能和响应速度,开发者需要注意以下几点关于高效编程的关键知识点: #### 概述 对于资源受限的系统(如移动设备),有两个基本准则...
教程还会介绍签名和发布过程中的注意事项,确保你的应用能顺利上线。 总之,《淘宝200买的教程 Delphi xe6 Android编程入门》是一份全面的指南,旨在帮助新手快速掌握使用Delphi XE6开发Android应用的技能。通过...
#### 四、注意事项 - 在实际开发中,为了提高程序的健壮性和用户体验,需要对异常情况进行处理,并提供友好的用户界面提示。 - 对于长时间运行的应用,应考虑线程管理问题,避免主线程阻塞导致UI卡顿。 - 在Android...
5. Android Http通信的注意事项 - 网络权限:在AndroidManifest.xml中添加INTERNET权限。 - 网络状态监听:在进行网络请求之前检查网络是否可用,避免在无网络状态下发起请求。 - 错误处理:在网络请求过程中可能...
3. **Android特定注意事项**: - Android设备可能在网络状态变化时失去网络连接,因此在进行Socket通信时,需要处理网络中断的情况,并在重新获得连接时恢复通信。 - 由于Android系统的安全限制,网络操作通常应该...
**注意事项** - 在实际应用中,需要处理异常情况,例如找不到串口、无法打开、读写失败等。 - 对于不同设备,可能需要尝试不同的端口号和波特率。 - 应用程序需要在运行时请求必要的权限,尤其是在Android 6.0及以上...
#### 五、其他注意事项 - **异步加载图片**: 对于需要显示大量图片的情况,建议使用如Glide或Picasso等第三方库进行异步加载,以避免阻塞主线程导致界面卡顿。 - **限制数据集大小**: 如果列表数据量过大,可以考虑...
此外,还包括如何准备应用发布到Google Play Store的步骤和注意事项。 ### 总结 《Android编程入门》这本书适合初学者系统地学习Android应用开发。它不仅提供了基本概念和技能的介绍,还深入讲解了一些高级主题,...
本篇文章将详细阐述Android NDK环境搭建的过程及注意事项,同时提供一份宝贵的资源——"setup.exe",这可能是用于安装NDK的执行文件。 首先,我们了解下NDK的基本概念。NDK是一套工具集,包含了编译器、链接器和...
五、注意事项 1. 网络权限:在AndroidManifest.xml中添加 `<uses-permission android:name="android.permission.INTERNET" />` 权限,否则无法进行网络通信。 2. 异常处理:Socket编程中应充分考虑网络异常,如...
-Himi.txt可能是作者提供的学习指南或注意事项,而AndroidGames可能包含了多个示例游戏的源码。通过分析这些源码,你可以更好地理解上述知识点在实际项目中的应用,从而加速自己的学习过程。无论是初学者还是有经验...
Android编程设计模式之迭代器模式详解 Android编程设计模式之迭代器模式是Android开发中常用的设计模式之一。迭代器模式(Iterator Pattern)又称为游标(Cursor)模式,是行为型设计模式之一。该模式的主要目的是...
- **HTTP请求**:介绍如何通过网络请求获取远程资源,包括GET和POST请求的发送方式及其注意事项。 - **RESTful API**:讲解RESTful API的设计原则及其实现方法,帮助开发者更好地与后端服务进行交互。 - **WebSocket...
3. **Android特有注意事项**: - **权限设置**:在AndroidManifest.xml中添加`<uses-permission>`标签,如`android.permission.INTERNET`,以允许应用访问网络。 - **网络操作应在子线程中执行**:由于Android的UI...
总的来说,Android的Socket编程涉及到网络编程的基础知识,包括TCP/IP协议、套接字概念、输入输出流的使用,以及Android平台特有的注意事项。理解并熟练掌握这些知识,可以为开发功能丰富的网络应用打下坚实的基础。
在Android编程中,Notification是应用与用户交互的重要方式,即使应用在后台运行或者完全关闭,也能提醒用户有新的事件需要处理。本篇文章将深入讲解Notification的用法,包括它的功能、使用技巧以及注意事项。 ...
在Android开发过程中,开发者经常会遇到各种问题,这些挑战可能...以上只是部分Android开发中的常见问题、实用技巧和注意事项,实际开发中还有更多细节需要注意。不断学习和实践,才能成为一名优秀的Android开发者。