`
文章列表
   一、概念及说明Android为了屏蔽进程的概念,利用不同的组件[Activity、Service]来表示进程之间的通信!组件间通信的核心机制是Intent,通过Intent可以开启一个Activity或Service,不论这个Activity或Service是属于当前应用还是其它应 ...
ListView的Adapter的作用如下图所示:Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View。想过没有? 在我们的列表有1000000项时会是什么样的?是不是会占用极大的系统资源? 先看看下面的代码: public View getView(int position, View convertView, ViewGroup parent) { View item = mInflater.inflate(R.layout.list_item_icon_text, null); ...
LayoutInflater的作用类似于 findViewById()(1)LayoutInflater是用来找layout下xml布局文件,并且实例化。 (2)findViewById()是找具体xml下的具体 widget控件(如:Button)。为了让大家容易理解我做了一个简单的Demo,主布局main.xml里有一个TextView和一个Button,当点击Button,出现 Dialog,而这个Dialog的布局方式是我们在layout目录下定义的custom_dialog.xml文件(里面左右分布,左边 ImageView,右边TextView)。 //通后对 ...
1、   数据库的cursor没有关闭 2、 构造adapter没有使用缓存contentview     衍生的listview优化问题:减少创建View的对象,充分使用contentview,可以使用静态类来处理优化getView的过程 3、Bitmap对象不使用时采用recycle()释放内存 4、Activity中的对象生命周期大于Activity 调式方法:DDMS->HEAPSIZE->adtaobject->total size     Android应用程序被限制在16MB的堆上运行,至少在T-Mobile G1上是这样。对于手机来说,这是很大 ...
(1)Android系统是基于Linux 2.6内核开发的开源操作系统,而linux系统的内存管理有其独特的动态存储管理机制。不过Android系统对Linux的内存管理机制进行了优化,Linux系统会在进程活动停止后就结束该进程,而Android把这些进程都保留在内存中,直到系统需要更多内存为止。这些保留在内存中的进程通常情况下不会影响整体系统的运行速度,并且当用户再次激活这些进程时,提升了进程的启动速度。   (2)Android的Low Memory killer是在标准的linux kernel的OOM基础上修改而来的一种内存管理机制,当系统内存不足时,杀死Bad进程释放其内存,Ba ...
通过以下部分代码,我们可以了解清楚Activity页面在横,竖屏切换时,生命周期的变化: public class AndroidLifecycle extends Activity { public void onCreate(Bundle savedInstanceState) { System.out.println("First Activity =======onCreate()========"); super.onCreate(savedInstanceState); ...
先看一下系统浏览器com.android.browser 启动类在AndroidManifest.xml 中的声明: <activity android:theme="@style/BrowserTheme" android:label="@string/application_name" android:name="BrowserActivity" android:launchMode="singleTask" android:configChanges="keyboardHidden|orien ...
对于单一Activity的应用来说,退出很简单,直接finish()即可。当然,也可以用killProcess()和System.exit()这样的方法。   但是,对于多Activity的应用来说,在打开多个Activity后,如果想在最后打开的Activity直接退出,上边的方法都是没 ...
Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集。接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,Map.Entry同时也提供了一个setValue()方法,程序员可以使用它修改map里面的值。 Map<String, String> map = new HashMap(); for (Map.Entry entry : map.entrySet()) { Object key = entry.getKey( ); }        Map hash ...
package lee.service; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import android.util.Xml; import lee.vo.Person; public class XMLPullService { public List<Person> readXML(InputStream inStream) throws Exceptio ...
1、JSON(JavaScript Object Notation) 定义:   一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json.org   2、JSON的结构: (1) Name/Value Pairs(无序的):类似所熟知的Keyed list、 Hash table、Disctionary和Associative array。在Android平台中同时存在另外一 ...
 android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。     Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。   Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。 利用invalidate()刷新界面   实例化一个Handler对象 ...
android中读取文件中文乱码如何解决 File file = new File(path); FileInputStream is=new FileInputStream(file); BufferedReader br = new BufferedReader(new InputStreamReader(is,"GB2312"));  
ListView listView = (ListView)findViewById(R.id.配置文件中ListView的ID); //全选遍历ListView的选项,每个选项就相当于布局配置文件中的RelativeLayout for(int i = 0; i < listView.getChildCount(); i++){ View view = listView.getChildAt(i); CheckBox cb = (CheckBox)view.findViewById(R. ...
请查看连接:http://blog.csdn.net/qinlicang/archive/2010/12/28/6103188.aspx
Global site tag (gtag.js) - Google Analytics