Android 常驻与很驻型广播的差别,及ListView优化,Android新手基本知识巩固
1.常驻型广播
常驻型广播,当你的应用程序关闭了,假设有广播信息来,你写的广播接收器相同的能接受到。
他的注冊方式就是在你的应用程序中的AndroidManifast.xml进行注冊。
通常说这样的方式是静态注冊
以下是配置样例
2<receiver android:name=".widget.DeskWidgeWeather">
3<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_weather_provider" />
4<intent-filter>
5 <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
6 <action android:name="action_weather"/>
7</intent-filter>
8lt;/receiver>
2.很驻型广播
当应用程序结束了,广播自然就没有了,比方你在activity中的onCreate或者onResume中注冊广播接收器
在onDestory中卸载广播接收器。这样你的广播接收器就一个很驻型的了。
这样的也叫动态注冊。
比方写一个监听SDcard状态的广播接收器
9SdcardStateChanageReceiver sdcardStateReceiver;
10@Override
11protected void onCreate(Bundle savedInstanceState)
12{
13 super.onCreate(savedInstanceState);
14 IntentFilter filter = new IntentFilter();
15 filter.addAction(Intent.ACTION_MEDIA_REMOVED);
16 filter.addAction(Intent.ACTION_MEDIA_EJECT);
17 filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
18 filter.addDataScheme("file");
19 sdcardStateReceiver = new SdcardStateChanageReceiver();
20 registerReceiver(sdcardStateReceiver,filter);
21}
22@Override
23protected void onDestroy(){
24 unregisterReceiver(sdcardStateReceiver);
25}
26class SdcardStateChanageReceiver extends BroadcastReceiver{
27
28 @Override
29 public void onReceive(Context context, Intent intent)
30 {
31 String state=android.os.Environment.getExternalStorageState();
32 System.out.println("SDCard 发生改变! 状态:"+state);
33 //checkSDCard();
34 }
35 public void checkSDCard(){
36 String state=android.os.Environment.getExternalStorageState();
37 System.out.println(state);
38 if(state.equals(android.os.Environment.MEDIA_REMOVED ) || state .equals(android.os.Environment.MEDIA_UNMOUNTED)){
39 System.out.println("SDCard 已卸载!");
40 }
41 }
42}
ListView优化方法之中的一个
写一个ViewHolder 内部类把须要反复用到的View放进去。ViewHolder Tag把标记这些View
content provider怎样发送信息
用一个Intent意图的PutExtra()方法把消息加进去。注冊一个BroadCastRecriver接收消息,更新Activity中的信息
安卓生命周期分哪几种
1. 前台进程。这种进程拥有一个在屏幕上显示并和用户交互的 activity 或者它的一个IntentReciver 正在执行。这种程序重要性最高。仅仅有在系统内存很低,万不得已时才会被结束。
2. 可见进程。
在屏幕上显示,可是不在前台的程序。比方一个前台进程以对话框的形式显示在该进程前面。
这种进程也非常重要,它们仅仅有在系统没有足够内存执行全部前台进程时,才会被结束。
3. 服务进程。这种进程在后台持续执行,比方后台音乐播放、后台数据上传下载等。
这种进程对用户来说一般非常实用。所以仅仅有当系统没有足够内存来维持全部的前台和可见进程时。才会被结束。
4. 后台进程。这种程序拥有一个用户不可见的 activity。
这种程序在系统内存不足时。依照 LRU的顺序被结束。
5. 空进程。这种进程不包括不论什么活动的程序部件。系统可能随时关闭这类进程。
演示样例图:
非常多基础知识都是我们日常开发用得到的。不要忽视了。事实上有时候它们起着非常关键的数据,比方ListView就是我们经常使用的
Android 常驻与很驻型广播的差别,及ListView优化,Android新手基本知识巩固的更多相关文章
- android:分享 一个很强大的LOG开关---Log.isLoggable
标签:android分享 一个很强大的log开 1.API亮点: 此API可以实现不更换APK,在出问题的手机上就直接能抓到有效log,能提升不少工作效率. 2.API介绍 最近在解决短信问题时,看到 ...
- 【Android】Android 4.0 无法接收开机广播的问题
[Android]Android 4.0 无法接收开机广播的问题 前面的文章 Android 开机广播的使用 中 已经提到Android的开机启动,但是在Android 4.0 有时可以接收到开机 ...
- Android 常驻广播和非常驻广播
一.知识准备 ①常驻广播接受者:使用AndroidManifest.xml注册,接受者不随Activity的销毁而销毁,也就是拥有独立的生命周期. ②非常驻广播接受者:使用registerReceiv ...
- Android 进程常驻(5)----开机广播的简单守护以及总结
这是一个轻量级的库,配置几行代码.就能够实如今android上实现进程常驻,也就是在系统强杀下,以及360获取root权限下.clean master获取root权限下都无法杀死进程 支持系统2.3到 ...
- Android 两种注册、发送广播的区别
前言:前面文章记录了Service的使用,这次来记录另一个四个组件之一的BroadcastReceiver.主要介绍两种发送和注册广播的区别. BroadcastReceiver广播接收者用于接收系统 ...
- Android学习笔记(十三)——广播机制
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! Android 中的每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接收到自己所关心的广播内容 ...
- Android基础总结(4)——广播接收器
在Android中的每个应用程序可以对自己感兴趣的广播进行注册,这样该程序就只会接收自己所关心的广播内容,这些广播可能来自于系统的,也可能来自于其他应用程序的.Android提供了一整套完整的API, ...
- android 界面布局 很好的一篇总结[转]
1.LinearLayout ( 线性布局 ) :(里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角) 线性布局分为水平线性和垂直线性二者的属性分别为:android:orienta ...
- Android学习笔记--Broadcast, BroadcastReceiver(广播)
参考资料:http://www.cnblogs.com/playing/archive/2011/03/23/1992030.html 在 Android 中使用 Activity, Service, ...
随机推荐
- [AT2699]Flip and Rectangles
题目大意:有一个$n\times m$的$01$矩阵,可以把任意行或列反转,问最大的全为一的子矩阵的面积 题解:有一个结论:若一个子矩形$S$中的任意一个$2\times 2$的子矩形都含有偶数个$1 ...
- position:absolute和float隐式改变display为inline-block
不论之前是什么类型的元素(display:none除外), 只要设置了position:absolute或float, 都会让元素以display:inline-block的方式显示, 可以设置长宽, ...
- Apache-commons.BeanUtils浅析
BeanUtils:通过反射控制JavaBean属性的实用方法. 1.cloneBean(Object) Object 克隆一个bean是基于可用属性的get和set方法,即 ...
- 华中农业大学第四届程序设计大赛网络同步赛 I
Problem I: Catching Dogs Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1130 Solved: 292[Submit][St ...
- 2.1 Python3.5安装以及爬虫需要的环境配置
之所以选用Python,是因为对于网络爬虫来说,Python是最好上手的一种语言.本文讲述的安装配置都是基于Windows的环境. 另外我想说的是,文中用到的下载链接尽量官方网站上的下载链接,这是我比 ...
- CSU 2031
2031: Barareh on Fire Submit Page Summary Time Limit: 3 Sec Memory Limit: 512 Mb Submitt ...
- vs2012 有效产品密钥
VS2012 有效注册密钥 下载地址:https://www.malavida.com/en/soft/visual-studio-2012/ Microsoft Visual Studio Ulti ...
- inux下设置mysql数据库字符集utf8
mysql中文乱码解决方法:将mysql数据库编码统一utf8 查看数据库编码: ? 1 <span style="font-size: 16px;"><stro ...
- Aspose.Cells 基础用法
最近使用Aspose.Cells做Excel,在怎么添加批注和添加内部导航链接上耗费了一些时间,最后在官网上找到相关用法,记录一下. 代码不用过多介绍,看看即可明白. 测试代码下载 Workbook ...
- cocos2d programming guide 翻译 引导页(完结)
http://bbs.tairan.com/article-25-1.html Cocos2d官方入门指导 原文地址:http://www.cocos2d-iphone.org/wiki/doku. ...