android
西二旗老司机
软件工程专业,性格开朗、不乏稳重。
展开
-
Android中的线程模型
这篇文章将讨论Android应用程序中使用的线程模型,并讨论如何确保应用程序最佳的UI呈现(通过创建工作者线程来处理耗时的操作,而不是在主线程里处理)。这篇文章还将阐述与运行在主线程中的UI组件交互的API以及创建托管的工作者线程的API。UI线程当应用程序启动后,系统创建了一个叫做“main”的线程。主线程,也叫UI线程,非常重要,因为它负责分发事件给构件,包括绘制事件。也是这个线程,在这里才能与Android UI工具包中的组件进行交互。例如,当你触摸屏幕上的一个按钮时,UI线程会分发一个触摸事件给构件转载 2010-08-09 10:55:00 · 408 阅读 · 0 评论 -
区分Activity的四种加载模式
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。加载模式分类及在哪里配置Activity有四种加载模式:standardsingleTopsingleTasksingleInstance设置的位置在AndroidManifest.xml文件中activity元素的android:launch转载 2010-08-21 01:42:00 · 397 阅读 · 0 评论 -
Activity生命周期
<br /><br />Activity生命周期<br /> <br /><br /> 理解Activity的生命周期对应用程序开发来说是至关重要的,这样才能确保您的应用提供了一个很好的用户体验和妥善管理其资源。由于OPhone应用 程序不控制自己的进程寿命,由OPhone Runtime管理每个应用程序进程,但是每个Activity的状态反过来会影响到OPhone Runtime是否将终止当前Activity和还是让它继续运行。<br /> <br /><br />Actvity 堆栈<br转载 2010-08-21 13:57:00 · 753 阅读 · 0 评论 -
Android 实现联网(二)——java.net漫游
<br /> <br />相比较C++,JAVA在网络编程方面的优势是不言而喻的。想当初学习MFC网络方面的痛苦,现在看到java.net包中的类,感觉轻松多了。说 点题外话:在C++网络方面可以推荐给大家一个很好的开源项目POCO库,这个库在网络方面的功能只能用: 那是相当强大,有兴趣的可以去学习下。<br />在Android 实现联网(一)——package说明篇幅中 ,我们简要介绍了Android 网络方面的包,本篇幅我们漫游java.net包,按照网络方面的知识来逐步学习java网络编程,并给大家转载 2010-08-21 14:00:00 · 577 阅读 · 0 评论 -
Android 实现联网(三)——在线程中联网
<br />在前面的关于Java I/O的学习中,有一个我们需要牢记的是:对数据流的操作都是阻塞的,在一般情况下,我们是不需要考虑这个问题的,但是在Android 实现联网的时候,我们必须考虑到这个问题。比如:从网络上下载一张图片:<br />public Bitmap returnBitmap(String url){URL myFileUrl = null;Bitmap bitmap = null;try{myFileUrl = new URL(url);}catch(Malfo转载 2010-08-21 15:57:00 · 534 阅读 · 0 评论 -
Using Google Maps in Android
很好的介绍google map的文章,先贴过来,有时间翻译。http://mobiforge.com/developing/story/using-google-maps-android原创 2010-08-23 11:48:00 · 418 阅读 · 0 评论 -
Android消息处理机制(二)
角色综述(回顾): (1)UI thread 通常就是main thread,而Android启动程序时会替它建立一个MessageQueue。(2)当然需要一个Looper对象,来管理该MessageQueue。(3)我们可以构造Handler对象来push新消息到Message Queue里;或者接收Looper(从Message Queue取出)所送来的消息。(4)线程A的Handler对象可以传递给别的线程,让别的线程B或C等能送讯息来给线程A(存于A的Message Queue里)。(5)线程A的转载 2010-08-21 00:35:00 · 381 阅读 · 0 评论 -
Android 中ListView内容刷新
<br />最近在学习Android的listView控件时遇到了一个问题,如何添加一个Item到ListView中并及时的刷新出来。在网上查了很多帖子,很多人在问,也很多人在解答,但是总的来说都没找到详细的解决方案。对于ListView与数据库的同步,高手们建议使用 ContentProvider对象。但是如果我不使用数据库呢?也有人回答用notifyDataSetChanged()方法。这倒是一个正确的解决方案,但是对于新手来说,还是比较困惑怎么去用,这里我贴一下我的用法:<br />OnClickLi转载 2010-08-21 03:38:00 · 750 阅读 · 0 评论 -
HTTP 通信, XML 解析, 通过 Hander 实现异步消息处理
<br /> <br />介绍 <br />在 Android 中与服务端做 HTTP 通信,解析 XML,通过 Handler 实现异步消息处理 <br />HTTP 通信 - 与服务端做 HTTP 通信,分别以 GET 方式和 POST 方式做演示 <br />XML 解析 - 可以用两种方式解析 XML,分别是 DOM 方式和 SAX 方式 <br />异步消息处理 - 通过 Handler 实现异步消息处理,以一个自定义的异步下载类来说明 Handler 的用法 <br /> <br /> <br转载 2010-08-24 16:52:00 · 1059 阅读 · 1 评论 -
Android Handler 线程消息机制
android 有一种叫消息队列的说法,这里我们可以这样理解:假如一个隧道就是一个消息队列,那么里面的每一部汽车就是一个一个消息,这里我们先忽略掉超车等种种因素,只那么先进隧道的车将会先出,这个机制跟我们android 的消息机制是一样的。 Android 的线程消息机制 android 在设计的时候引入了 wince 的消息机制,即将每一个消息发送到队列里面,遵循先进先出原则。发送消息并不会阻塞线程,而接收线程会阻塞线程,这是因为 Android 的Handler 机制,当Handler 处理完一转载 2010-08-28 01:15:00 · 861 阅读 · 0 评论 -
图解 Android Handler 线程消息机制
<br /><br /> android 有一种叫消息队列的说法,这里我们可以这样理解:假如一个隧道就是一个消息队列,那么里面的每一部汽车就是一个一个消息,这里我们先忽略掉超车等种种因素,只那么先进隧道的车将会先出,这个机制跟我们android 的消息机制是一样的。<br /><br /> Android 的线程消息机制<br /><br /> android 在设计的时候引入了 wince 的消息机制,即将每一个消息发送到队列里面,遵循先进先出原则。发送消息并不会阻塞线程,而接收线程会阻塞线程,这是转载 2010-08-28 01:15:00 · 612 阅读 · 0 评论 -
图解 Android Handler 线程消息机制
<br /><br /> android 有一种叫消息队列的说法,这里我们可以这样理解:假如一个隧道就是一个消息队列,那么里面的每一部汽车就是一个一个消息,这里我们先忽略掉超车等种种因素,只那么先进隧道的车将会先出,这个机制跟我们android 的消息机制是一样的。<br /><br /> Android 的线程消息机制<br /><br /> android 在设计的时候引入了 wince 的消息机制,即将每一个消息发送到队列里面,遵循先进先出原则。发送消息并不会阻塞线程,而接收线程会阻塞线程,这是转载 2010-08-28 01:13:00 · 442 阅读 · 0 评论 -
Android 的消息队列模型
<br />转自:http://blog.csdn.net/ghj1976/archive/2011/05/06/6398896.aspx<br />Android是参考Windows的消息循环机制来实现Android自身的消息循环的。 <br />Android通过Looper、Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环)。 <br />Android系统中,Looper负责管理线程的消息队列和消息循环。我们可以通过Loop.myLoop转载 2011-05-07 22:04:00 · 74 阅读 · 0 评论 -
演化理解 Android 异步加载图片
<br /><br />http://blog.csdn.net/ghj1976/archive/2011/05/06/6399479.aspx<br />在学习"Android异步加载图像小结"这篇文章时, 发现有些地方没写清楚,我就根据我的理解,把这篇文章的代码重写整理了一遍,下面就是我的整理。<br />下面测试使用的layout文件:<br />简单来说就是 LinearLayout 布局,其下放了5个ImageView。http://schemas.android.com/apk/res/andr转载 2011-05-07 23:25:00 · 572 阅读 · 0 评论 -
Android如何在Activity和Service之间传递数据
一个Android程序可以由多个Activity和Servier组成,在这些程序组件之间传递数据的方法有以下几种,每种方法都有其特定的使用途径。1、原始数据类型:在Activity/Servier之间传递临时性的原始数据,可以使用Intent的putExtras方法来传递转载 2010-08-28 11:59:00 · 7340 阅读 · 0 评论 -
android网络连接总结
一:HttpURLConnection URL sourceUrl;String fileName =""; try { sourceUrl = new URL("网址"); fileName = sourceUrl.getFile(); fileName = fileName.substring(fileName.lastIndexOf('/') + 1); fileName = "/sdcard/"+(new Date()).getTime()转载 2010-08-21 00:41:00 · 1112 阅读 · 0 评论 -
判断android手机当前是否接入网络
如果拟开发一个网络应用的程序,首先考虑是否接入网络,在Android手机中判断是否联网可以通过 ConnectivityManager 类的isAvailable()方法判断,首先获取网络通讯类的实例 ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); ,使用cwjManager.getActiveNetworkInfo().isAvailable(); 来返回转载 2010-08-22 01:35:00 · 533 阅读 · 0 评论 -
构建自定义组件
<br /><br />构建自定义组件<br />Android中,你的应用程序程序与View类组件有着一种固定的联系,例如按钮(Button)、 文本框(TextView), 可编辑文本框(EditText), 列表框(ListView), 复选框(CheckBox), 单选框(RadioButton), 滚动条(Gallery), 微调器(Spinner), 等等,还有一些比较先进的有着特殊用途的View组件,例如 AutoCompleteTextView,ImageSwitcher和 TextSwit转载 2010-08-21 13:07:00 · 830 阅读 · 0 评论 -
Android系统中自带的图标
Android系统中自带了很多图标,我们的程序可以方便使用。 Android™ 1.5 android.R.drawable Icon Resources http://since2006.com/android/1.5-drawables.php Android™ 1.6 android.R.drawable Icon Resources http://since2006.com/android/1.6-drawables.php Android™ 2.1 android.R.drawable Icon原创 2010-08-10 20:53:00 · 620 阅读 · 0 评论 -
Android Check GPS is Enabled or Not
In android, we can easily check whether GPS is enabled in device or not using LocationManager.Here is a simple program to Check.GPS Enabled or Not :-Add the below user permission line in AndroidManifest.xml to Access Location1Your java class file sgould be翻译 2010-08-11 15:13:00 · 1061 阅读 · 0 评论 -
android控件背景揭密--NinePatch
android中控件都有着漂亮的背景,边缘渐变非常平滑,并且在任何大小情况下表现都很好。那么android是怎么实现的呢?其实android使用了一种特殊的png图片,在资源文件中以.9.png结尾的便是这种图片了,大家可以在android-sdk-windows-1.5_r1/platforms/android-1.5/data/res/drawable这个目录下找到很多这种图片,那么它与普通的png图片有什么区别呢?其实很简单,它只是在普通的png图片的外围增加一个像素宽的矩形外框,使用描边的方法画上一原创 2010-08-13 21:38:00 · 3767 阅读 · 1 评论 -
android 自定义title样式
<br />Android除了可以为指定的Activity设置显示风格,此外也可以为指定的Activity设置一些特效,比如自定义Title,没有Title的Activity或者增加一个ICON等。 <br />有意思的一点是,这些特效并不是你想设置的时候就行设置,你需要在Activity显示之前向系统申请要显示的特效,这样才能在下面的程序中为这些特效进行设置。<br />为一个Activity设置自定义Title的流程: <br />1)为自定义的Title建立一个layout(custom_title_转载 2010-08-17 19:53:00 · 1763 阅读 · 0 评论 -
android界面无标题栏和全屏效果的实现方式
使用xml的方式,在manifest文件中,在需要的Activity元素中加入属性: android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 这是全屏的。 如果只是不要标题栏: android:theme="@android:style/Theme.NoTitleBar"> 这样的好处是不需要写程序语句。程序的写法是,无标题栏: requestWindowFeature(Window.FEATURE_NO_TITLE); 全屏:原创 2010-08-18 15:18:00 · 1553 阅读 · 0 评论 -
Android 按钮效果的两种实现方法
<br />第一种:<br />该方法通过onTouch来实现,<br />btn3 = (ImageButton) findViewById(R.id.ImageButton03);btn3.setOnTouchListener(touchListener3);View.OnTouchListener touchListener = new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent even原创 2010-08-18 15:16:00 · 1176 阅读 · 0 评论 -
android Listview详解
在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。抽空把对ListView的使用做了整理,并写了个小例子,如下图。 列表的显示需要三个元素:1.ListVeiw 用来展示列表的View。2.适配器 用来把数据映射到ListView上的中介。3.数据 具体的将被映射的字符串,图片,或者基本组件。根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter其中以Array转载 2010-08-18 17:37:00 · 498 阅读 · 0 评论 -
Android 中的ListView内容刷新问题
<br />最近在学习Android的listView控件时遇到了一个问题,如何添加一个Item到ListView中并及时的刷新出来。在网上查了很多帖子,很多人在问,也很多人在解答,但是总的来说都没找到详细的解决方案。对于ListView与数据库的同步,高手们建议使用 ContentProvider对象。但是如果我不使用数据库呢?也有人回答用notifyDataSetChanged()方法。这倒是一个正确的解决方案,但是对于新手来说,还是比较困惑怎么去用,这里我贴一下我的用法:<br />OnClickLi转载 2010-08-19 01:43:00 · 1114 阅读 · 0 评论 -
android里在程序中修改listView里的内容
在android的列表中动态加载列表项需要对adapter里的源容器进行更新修改后再调用adapter.notifyViewChanaged()方法刷新当前listView.比如说: adapter = new SimpleAdapter(this, tempList,android.R.layout.simple_list_item_2, new String[] { Item.TITLE,Item.PUBDATE },new int[]{ android.R.id.text1 , android.R.i转载 2010-08-19 01:38:00 · 1832 阅读 · 0 评论 -
android输入框被键盘遮挡
<br /><br />解决办法是在整个页面配置文件中,在LinearLayout布局外加入<br /> < ScrollView xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:orientation="vertical" android:layout_width="fill_parent"<br /> android:layout_height="fill_parent" android:backgr原创 2010-08-19 18:59:00 · 1689 阅读 · 1 评论 -
Android invalidate与postInvalidate用法
<br />根据Android SDK api文档说明<br />invalidate 方法是用来更新视图(View)的方法,不过这东西的用法比较古怪<br />invalidate 方法如果你直接在主线程中调用,是看不到任何更新的。<br />如果跟线程结合使用的话<br />比如在下面的代码中就会抛出异常<br /><br />UIThread implements Runnable{<br />public void run(){<br /> invalidate();<br /> }<br />转载 2010-08-21 13:43:00 · 723 阅读 · 0 评论 -
Android 实现联网(一)——package说明
<br />今天我们将深入介绍了Android SDK 中一些与网络有关的package,如下:<br />包<br />描述java.net提供与联网有关的类,包括流和数据包(datagram)sockets、Internet 协议和常见 HTTP 处理。该包是一个多功能网络资源。有经验的 Java 开发人员可以立即使用这个熟悉的包创建应用程序。java.io虽然没有提供显式的联网功能,但是仍然非常重要。该包中的类由其他 Java 包中提供的 socket 和连接使用。它们还用于与本地文件(在与网络进行交转载 2010-08-21 13:59:00 · 673 阅读 · 0 评论 -
Android消息机制(一)
一、 角色描述1.Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列)。2.Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接收Looper(从Message Queue取出)所送来的消息。3. Message Queue(消息队列):用来存放线程放入的消息。4.线程:UI thread 通常就是main thread,而Android启动程序时会替它建转载 2010-08-20 14:42:00 · 932 阅读 · 0 评论 -
android Context Menu
上下文菜单Context MenuAndroid的上下文菜单在概念上和PC软件的右键菜单类似。当一个视图注册到一个上下文菜单时,执行一个在该对象上的“长按”(按住不动差不多两秒钟)动作,将出现一个提供相关功能的浮动菜单。上下文菜单可以被注册到任何视图对象中,不过,最常见的是用于列表视图ListView的item,在按中列表项时,会转换其背景色而提示将呈现上下文菜单。 (电话联系人列表提供了关于这个特性的一个很好的例子)。注意:上下文菜单项不支持图标或快捷键。为了创建一个上下文菜单,你必须重写这个活动的上下文转载 2010-08-21 01:53:00 · 1250 阅读 · 0 评论 -
关于onMeasure
关于onMeasure1、onMeasure方法在控件的父元素正要放置它的子控件时调用。它会问一个问题,“你想要用多大地方啊?”,然后传入两个参数——widthMeasureSpec 和heightMeasureSpec。它们指明控件可获得的空间以及关于这个空间描述的元数据。转载 2010-08-21 13:10:00 · 4873 阅读 · 0 评论