摘要: 1,brocastReceiver没有其他组件那样的生命周期,只有一个onrecive方法。(其生命周期只有10秒钟左右,因此不要再其中进行相关的费时操作,否则会认为程序无响应)。这是一种在不同应用程序之间传输信息的机制,brocastReceiver自身并不实现界面,当它接收到某个brocast之后,brocastReceiver可以启动activity作为响应,或者启动service或notification等。2,brocastReceiver分为三类:普通广播、有序广播和异步广播。3,注册广播具有两种方式:代码注册和在配置文件中进行注册:区别是如果在.xml中进行注册,那么无法在代码中 阅读全文
posted @ 2013-04-13 21:55 bobo的学习笔记 阅读(449) 评论(0) 推荐(0) 编辑
摘要: popupwindow,对话框式的activity,dialog都可以实现对话框的效果;前两者还都可以实现出现时候的动画效果。如果想要点击popupwindow之外的区域使之消失,在新建popupwindow之后,需要设置一下属性pop = new PopupWindow(460, 600); // 默认是不能获取焦点 pop.setContentView(contentView); pop.setAnimationStyle(R.anim.fade_in); pop.setFocusable(true); pop.setBackgroun... 阅读全文
posted @ 2013-04-10 15:21 bobo的学习笔记 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 在开发过程中,碰到这么一种需求,需要在后台开启一个service服务,每隔一个小时请求一次网络数据,并更新桌面的widget组件。可行的方法有两种:1,借助于定时器。在service的oncreate方法中timer=new Timer(); timer.schedule(new TimerTask(){ @Override public void run() { //因为service是在后台运行,并不存在ui阻塞的问题,因此可以不另开一个线程去请求网络信息 ... 阅读全文
posted @ 2013-04-09 14:22 bobo的学习笔记 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 感觉四大组件中,activity(系统提供的拨号,发送短信的界面不用提了),service(有系统提供的服务),broadcast receiver(有一些系统广播,诸如电池电量等),intent(存在系统的相关intent),可见都有一些系统功能可以调用。现在将系统提供的相关intent进行归纳。1,利用系统提供的intent浏览网页Uri uri=Uri.parse("http://www.cloudsensing.cn:8090/aqi/beijing/daily?location=xcgy"); Intent it=new Intent(); ... 阅读全文
posted @ 2013-04-08 17:51 bobo的学习笔记 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1,任务。一个应用程序整体看作一个task;就是用栈的方式组织一系列activity的集合,新加入的activity是位于栈顶的。2,activity的生命周期正常启动的调用顺序:oncreate->onstart(可见)->onresume(可见可交互);在结束时候的调用顺序是onPause(可见不可交互)->onStop(不可见)->onDestroy。在被停止的时候分为两种情况,如果先出的activity是全屏的那么顺序是onpause->onStop。(调用finsh方法或者内存不够的时候才会ondestory);恢复的时候是onStart->onR 阅读全文
posted @ 2013-04-08 10:22 bobo的学习笔记 阅读(338) 评论(0) 推荐(0) 编辑
摘要: Appwidget本质上还是一个广播:定义一个appwidget的方式如下:1,首先创建一个类,继承AppWidgetProvider,在其中重写需要重写的方法2,res下建立xml文件夹,建立元数据。包括指定高度,初始布局等等。<?xml version="1.0" encoding="utf-8"?><appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minHeight="80px& 阅读全文
posted @ 2013-04-07 19:53 bobo的学习笔记 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 1,service属于后台运行的程序,之间传递对象可以利用onBind方法,可以建立一个成员变量binder,在该方法中返回即可。2,在调用的serviceconnection中,onserviceconnect中可以得到service传递过来的binder。3,在解除绑定之前为了判断binder对象是否已经 创建,可以让service类中的binder对象继承一个标识性接口,并在onserviceconnect将binder对象赋予该对象。4,android提供了大量的系统服务,比如剪贴板服务(ClipBoardManager、telePhoneManager)等等,获取的方法是getSys 阅读全文
posted @ 2013-04-06 15:25 bobo的学习笔记 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 开发自己的ContentProvider相对来讲比较麻烦,其中一般涉及到数据库、sqlhelper的相关操作。1,定义数据库的元数据(使用接口),包括数据库名称、版本、AUTHORITY。数据库中各个表的名称,表中各个字段的名称,表的content uri,进行整个表格还是单独一项的操作。package org.lxh.demo;import android.net.Uri;import android.provider.BaseColumns;public interface MLDNDatabaseMetaData { // MLDN数据库元数据 // 外部访问的Authroity,... 阅读全文
posted @ 2013-04-02 11:22 bobo的学习笔记 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 不少应用在按下返回按键的时候能够退出该应用,并且弹出返回对话框,其实现步骤如下:1,首先在点击返回键需要退出的界面增加成员变量public static ArrayList<Activity> allActivity = new ArrayList<Activity>(); 2,监听按键点击事件 public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.KEYCODE_BACK == keyCode) { exit(); } return... 阅读全文
posted @ 2013-03-28 16:22 bobo的学习笔记 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 1,listview的adapter数据发生变化的时候,可以使用函数adapter.notifyDataSetChanged()来通知进行改变2,应用中如果用户是第一次使用应用,程序要做的工作和点击刷新按钮的时候需要做的工作是相同的,如果是之后进入,就可以直接从保存历史数据的sp中读取,这个时候为了提高代码的复用程度,可以在初次进入的时候调用刷新按钮的performClick事件;另外注意发送网络请求之前,一定要检查设备是否联网。3,如果是进入的是若干个activity组成的tab页面,那么首先会调用第一个activity的oncreate方法,有些时候不能成功生成tab,出现空指针异常的原因 阅读全文
posted @ 2013-03-27 17:59 bobo的学习笔记 阅读(162) 评论(0) 推荐(0) 编辑