Android学习之--杂项

new关键字和newInstance()方法的区别

a. new可以调用带参数的构造函数,newInstance不可以 b. newInstance: 弱类型。低效率。只能调用无参构造。

new: 强类型。相对高效。能调用任何public构造。

c. new是自己下厨,做饭自己吃。newInstance是外面吃别人做给你吃。

自己做可以保证安全,而且可以有多个口味,什么酱,放多少自己定。new对象不会因为找不到类而出异常,而且你还可以调用多个构造函数,按照自己口味去new对象,去做一份符合自己口味的。

在外面吃,可能会你点的菜那个店里没有,或者是口味不对,你要吃番茄酱,但是人家只有花生酱。而且菜没洗干净你也不知道。newInstance也是如此,很可能你要的对象他不存在,或者是参数不对。

对象的串行化(Serialization) 什么是串行化: 把对象的这种能记录自己的状态以便将来再生的能力,叫做对象的持续性(persistence)。 对象通过写出描述自己状态的数值来记录自己,这个过程叫对象的串行化(Serialization)。 串行化的任务:写出对象实例变量的数值。 http://www.cnblogs.com/vicenteforever/articles/1471775.html

SoapObject.getProperty的作用:

// 生成调用Webservice方法的SOAP请求信息.该信息由SoapSerializationEnvelope对象描述 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); envelope.bodyOut = rpc; envelope.dotNet = true; envelope.setOutputSoapObject(rpc); ht.call(NAMESPACE + methodName, envelope); if (envelope.bodyIn.toString().startsWith("SoapFault")) { SoapFault sf = (SoapFault) (envelope.bodyIn); Log.i("fault", sf.faultstring); if (handler != null) { Message message = Message.obtain(handler); message.what = 3; message.obj = sf.faultstring; message.sendToTarget(); } return; } SoapObject result = (SoapObject)envelope.bodyIn; String str = result.getProperty("abc").toString();//从result里面找到名为"abc"的值 如:result的值为:getInfoResponse{abc=测试; } 那么,result.getProperty("abc")将会从result里面找到abc的值“测试”

Android 的Message机制: Message机制涉及三个主要的类:Handler、 Message、 Looper 1. Handler 两个用途:定时处理或者分发消息;添加一个执行的行为在其他线程中执行。 Handler中常见的方法就是对消息的处理,可以覆盖public void handleMessage(Message msg) 方法,
2. 消息android.os.Message 定义一个Message包含必要的描述和属性数据,此对象可以被发送给android.os.Handler处理。 字段:what保存消息标示;obj是Object类型对象;replyTo是消息管理器,会关联到一个handler,handler就是处理其中的消息。通常Message对象不是new出来的,而是调用handler中的obtainMessage方法来直接获得Message对象 如:

Message message = Message.obtain(handler);

3. Looper类主要用于一个线程循环获取消息队列中的消息:管理消息队列,负责消息的出列和入列操作。
Message机制原理示意图:

Activity EHandler Looper MessageQueue

IntentReceiver EHandler Looper MessageQueue

具体详细传递步骤等可以参考 http://blog.csdn.net/dadoneo/article/details/7667726 文章

WeakReference WeakReference与SoftReference都可以用来保存对象的实例引用,与垃圾回收有关。 WeakReference是弱引用,保存的对象实例可被GC回收,常用于 在某处保存对象引用,而又不干扰该对象被GC回收 如Debug,内存监视工具等程序中。该类程序一般要求既要观察到对象,又不能影响该对象正常的GC过程。 SoftReference是强引用,保存对象实例,除非JVM即将OutOfMemory,否则不会被GC回收。特别适用于设计对象Cache。对于Cache,我们希望被缓存的对象最好始终常驻内存,但是如果JVM内存吃紧,为了不发生OutOfMemoryError导致系统崩溃,必要的时候也允许JVM回收Cache的内存。待合适的时机再把数据重新Load到Cache中。使得设计更具有弹性。
Dialog点击按钮时对话框不会被关闭的实现:

public void closeDialog(final DialogInterface dialog, boolean close) { // 利用反射使点击按钮时,对话框不会关闭 try { // 得到AlertDialog的父类属性mShowing field = dialog.getClass().getSuperclass() .getDeclaredField("mShowing"); field.setAccessible(true); // 将mShowing变量设为false,表示对话框已关闭 field.set(dialog, close); dialog.dismiss(); } catch (NoSuchFieldException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } }

详细的反射可以参照这篇文章 android 反射机制的原理与实现 http://blog.csdn.net/annaleeya/article/details/8240510

Mr.傅:学习笔记
欢迎转载,转载注明出处,谢谢

点击复制链接 与好友分享!回本站首页
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力
上一篇:android异步加载图片类(续)-universal-image-loader详解
下一篇:android之GridView不同实现方式详解
相关文章
图文推荐
Android学习之--杂项
Android中数据存储方
Android学习之--杂项
Android OTA升级包制
Android学习之--杂项
Android从普通发送和
Android学习之--杂项
Android开发:Parall

分类:默认分类 时间:2013-04-10 人气:0
本文关键词:
分享到:

相关文章

  • Android SQLite数据库操作示例 2012-01-01

    SQLite介绍 SQLite是一个非常流行的嵌入式数据库,它支持SQL语言,并且只利用很少的内存就有很好的性能。此外,它还是开源的,任何人都可以使用它。 SQLite由以下几个组件组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展SQLite的内核变得更加方便。 SQLite支持的数据类型参考链接:http://blog.csdn.net/wzy_1988/article/details/36005947 Android在运行时(

  • Android引路蜂地图开发示例:选择地图服务 2012-01-02

    引路蜂地图服务缺省使用Google地图服务,但你也可以选择其它地图服务,比方说当Google服务离线时,您可以选择MapAbc的地图服务,另外要注意的是中国地图是有偏移的。如果想使用无偏移的中国地图,一是采用地图偏移校正算法,另外一个是使用CloudMade地图服务。 所前所述,引路蜂地图开发包在设计时将地图图片显示和地图服务两部分设计成相对独立的两部分,Google中国地图图片,Bing中国地图图片,MapAbc中国地图图片是有偏移的地图图片,CloudMade(OpenStreet)中国地图

  • Android 关于greenDao的使用教程 2012-01-02

    关于greenDao的使用 第一篇How to get started ? 原文地址:http://greendao-orm.com/documentation/how-to-get-started/ 该教程会带你浏览一个简单的greenDao示例工程。地址:https://github.com/greenrobot/greenDAO,该工程包含两个子工程: DaoExample和DaoExampleGenerator。你可以clone到本地,运行或者直接在github上直接浏览。 如果你从gi

  • Android 手势识别 2012-01-03

    Android 提供了GestureDetector类来识别用户的手势操作,这个类提供了两个侦听接口:OnGestureListener(处理单击类消息)与OnDoubleTagListener(处理双击类消息)。onGestureListener( )接口中有以下几个抽象方法: // 单击,触摸屏按下时立刻触发 abstract boolean onDown(MotionEvent e); // 抬起,手指离开触摸屏时触发(长按、滚动、滑动时,不会触发这个手势) abstract boolea

  • Android-Universal-Image-Loader框架学习 2012-01-03

    先来看一下Android-Universal-Image-Loader框架的用法; 1、初始化ImageLoaderConfiguration(全局的,在整个application中初始化configuration,配置缓存、加载线程等)、 ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( getApplicationContext()) .threadPriority(Thread.NORM_PRIO

  • iOS和Android将在良性竞争中互存 2012-01-03

      苹果推出iPhone 4S。图/CFP   三星可弯曲屏幕概念机   Natali概念机   Kambala概念机   Windows概念机   “苹果风光将长久依旧!”,iPhone的最大竞争对手Android阵营显然不这么看。Android由Google推出,而Google董事长施密特前不久刚刚发表了对智能手机大战的见解,他表示,实际上在苹果的系统(iOS)和Android之间的竞争还会继续存在下去,而且这种竞争是非常良性的竞争。它能够把我们的价格降低,而且会把更多的投资带到市场上。目前

  • android如何在BaseAdapter内使用notifyDataSetChanged()方法以及线程的使用 2012-01-04

    有时候我们需要修改列表里的数据,并实时刷新,我们除了在在外部调用adapter.notifyDataSetChanged()方法来通知activity刷新, 如果在adapter内部有涉及到更新数据,删除或者增加数据,就可以直接在adapter内部调用notifyDataSetChanged()这个方法,前提是该listview绑定的数据有改变。 以下例子结合Handler,线程展示 public class MyAdapter extends BaseAdapter { private fin

  • Google否认Android应用认证体系被破解 2012-01-04

    Google在7月发布了新的Android应用程序许可验证服务, 以防止Android应用可被轻松破解的尴尬局面。但是这一新的版权保护形式依然很脆弱,脆弱到依然可以被轻松破解。只要用一个叫做 smali/baksmali的程序将.apk文件解包,把里面的授权验证库给移除掉,再重新打包成.apk文件就完成了破解。因为.apk文件里的授权 验证库是独立的一个部分,所以很好分离出来,完成破解。目前这一方式还存在于理论上,不过估计很快就会有人做出自动工具来实现批量.apk文件的破解。 Google迅速通

  • android 点击下弹动画实现 2012-01-04

    下弹动画的实现 下弹动画在很多应用都有使用,比如豌豆荚中的应用介绍界面,百度手机助手的应用介绍界面等。 只要熟悉android动画的使用接口,制作动画并不困难。 这里使用开源库nineoldandroids,其实和android3.0 以上直接使用动画接口是一样的。 实现效果 PS, 搞了半天GIF 才能播放。原来是最大边不能太大了。原来图片尺寸太大,被默认转成jpg了。现在总算能看到效果了。 DropDownExample.java package com.buptfarmer.devapp;

  • 细数Android十大最受欢迎的程序软件(下) 2012-01-04

      上文关于Android程序软件的介绍看的过瘾吗?这里再次为你呈现你喜爱的,你常用的,你不知道的……   6、BatteryHD   Battery HD在排行中一直很稳定的维持在第6名。它两星期之前第一次出现在thenextinstall排名榜上,目前为止安装量已经超过了100k。随着 hockey-stick发展起来, Battery HD的安装量将很快超过100万。虽然这个程序很简单,但是电池方面的应用程序在安卓程序中永远不会过时。   7、Radiant Defense   上个星期R

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.052 (s). 10 q(s)