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, ...
随机推荐
- P4342 [IOI1998]Polygon
题意翻译 题目可能有些许修改,但大意一致 多边形是一个玩家在一个有n个顶点的多边形上的游戏,如图所示,其中n=4.每个顶点用整数标记,每个边用符号+(加)或符号*(乘积)标记. 第一步,删除其中一条边 ...
- CSS Sprite、CSS雪碧图应用实例
CSS Sprites技术被国内一些人称为CSS雪碧图,其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background- repeat”, ...
- linux进程——后台运行的方法
linux进程后台运行的几种方法: 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败. 如何让命 ...
- 在有道词典程序文件夹发现一个后缀名为sql的数据库(SQLite)
缘起 在清理电脑磁盘的时候,看一看各安装文件夹有占用了多大容量,发现有道词典居然达140MB了,于是进去看看. 发现个有趣的文件:XXX.sql. 首先我们看一看它的安装文件夹的结构: Dict └─ ...
- 浅谈Visitor Pattern
第一步: 在介绍Visitor Pattern (访问者模式)之前,先简要介绍一下:双重分派. 在Visitor Pattern中双重分派是指:数据结构的每一个节点都可以接受一个访问者的调用(这句 ...
- Waifu2x测试
真的是好玩..给大家(?)提供一个能用Waifu2x upscale的图片类型集合.. 上面是原图下面是Upscaled..因为是png大家自行下载对比..
- es6+最佳入门实践(4)
4.函数扩展 4.1.参数默认值 默认参数就是当用户没有传值的时候函数内部默认使用的值,在es5中我们通过逻辑运算符||来实现 function Fn(a, b) { b = b || "n ...
- 关于try-catch-finally return 的面试题
public class Test { public static void main(String[] args) { System.out.println(test()); } static in ...
- http://stormzhang.com/opensource/2016/06/26/android-open-source-project-recommend1/
转载自:http://stormzhang.com/opensource/2016/06/26/android-open-source-project-recommend1/ 推荐他的所有博文~ 图片 ...
- Altium 原理图出现元件 “Extra Pin…in Normal of part ”警告
原理是因为元器件库中的元器件的所有模式MODE不能和pcb中的引进匹配造成的,那什么又是MODE呢, 看下买的图便很清楚了, MODE可以理解为不同的视图模式吧. 然后赶紧打开原理图库中的有问题的元器 ...