`
亚当爱上java
  • 浏览: 698395 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 编程注意事项

阅读更多
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编程注意事项.doc

    android java编程注意事项

    Android 高效编程注意事项

    最近用 Android 开发了几个模块,感觉有点慢,后来好好看了相关优化 Android 代码的知识,优化之后,感觉快了很多。 在这里与大家分享一下,下面只是说 的一些很基础有很重要的知识,你想要编写运行速度很快、 占用内存少...

    Android编程设计模式之解释器模式详解

    主要介绍了Android编程设计模式之解释器模式,详细分析了Android解释器模式的概念、原理、使用场景、使用方法及相关操作注意事项,需要的朋友可以参考下

    Android高级编程--源代码

    作为使用androidsdk构建这些应用程序的实用指南书籍,《android高级编程》从始至终穿插了一系列示例项目,每个项目都引入android的新功能和新技术,以助您达到最圆满的学习效果。书中介绍android的所有基本功能,并...

    Android编程调用Camera和相册功能详解

    主要介绍了Android编程调用Camera和相册功能,结合实例形式分析了Android的拍照及相册调用功能相关实现技巧与操作注意事项,需要的朋友可以参考下

    android开发揭秘PDF

    14.3.2 游戏引擎设计注意事项 14.4 游戏引擎实现 14.4.1 Activity类实现 14.4.2 流程控制和线程 14.4.3 游戏对象与对象管理 14.4.4 图形引擎 14.4.5 物理引擎 14.4.6 事件模块 14.4.7 工具模块 14.4.8 脚本引擎、...

    Android编程实现开始及停止service的方法

    主要介绍了Android编程实现开始及停止service的方法,涉及Android针对service的开始、停止、绑定等操作相关技巧与注意事项,需要的朋友可以参考下

    Android Studio 星座APP

    在配对页面中,可以选择男生女生的各自星座,点击开始配对会进行两人的分析,显示分数、解析、注意事项等等。。。 在运势中会显示每个星座的图标,非常可爱,点击某个星座图标后会跳转到运势界面显示今日运势、近月...

    java并发编程从入门到精通

    《Java并发编程从入门到精通》作者结合自己10多年Java并发编程经验,详细介绍了Java并发编程的基础概念、工作原理、编程技巧和注意事项,对Java高性能高并发编程有极大的参考价值。 《Java并发编程从入门到精通》...

    Android编程之ListPreference用法实例分析

    主要介绍了Android编程之ListPreference用法,结合实例形式较为详细的分析说明了ListPreference的功能、用法及相关注意事项,需要的朋友可以参考下

    Android编程自定义Dialog的方法分析

    主要介绍了Android编程自定义Dialog的方法,结合实例形式分析了Android自定义Dialog的界面布局、功能实现及相关注意事项,需要的朋友可以参考下

    Android编程实现滑动按钮功能详解

    主要介绍了Android编程实现滑动按钮功能,结合实例形式较为详细的分析了Android实现滑动按钮的功能、布局及相关注意事项,需要的朋友可以参考下

    android开发入门与实战(下)

    1.4.3 模拟器使用注意事项 1.5 更上一层楼——加入Android开发社区 1.6 本章小结 第2章 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件...

    Android编程实现动画自动播放功能

    主要介绍了Android编程实现动画自动播放功能,结合实例形式分析了Android动画自动播放功能的实现方法与相关注意事项,需要的朋友可以参考下

    Android编程之短信列表的时间显示实例分析

    主要介绍了Android编程之短信列表的时间显示,实例分析了Android中短信列表的时间显示及具体注意事项,具有一定参考借鉴价值,需要的朋友可以参考下

    Android编程设计模式之策略模式详解

    主要介绍了Android编程设计模式之策略模式,结合实例形式详细分析了Android策略模式的概念、原理、实现方法及相关注意事项,需要的朋友可以参考下

    Android编程实现自定义渐变颜色效果详解

    主要介绍了Android编程实现自定义渐变颜色效果,结合具体实例形式分析了Android基于xml及代码定义来实现颜色渐变的相关操作技巧与注意事项,需要的朋友可以参考下

    Android编程实现播放视频的方法示例

    主要介绍了Android编程实现播放视频的方法,结合具体实例形式分析了Android使用VideoView类播放视频的相关操作技巧与注意事项,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics