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, ...
随机推荐
- ArcGIS 创建要素时提示“表已经被注册(table already registered)”
今天一位实施大哥在ArcCatalog中要重建一个要素类,所以就在ArcCatalog中连接上Oracle数据库,直接删除了要素类,然后重新创建了一个新的要素类,可是却报错“表已经被创建”,并提示不可 ...
- Scala 基础(2)—— 基本数据结构
1. Scala 的面向对象 在学习 Java 的时候,我们说 Java 是一门面向对象的语言,然而 Java 其实并没有完全遵守“一切皆对象”这一准则. 例如:Java 的8种基本数据类型 & ...
- Visual Studio 2017 添加引用报错(未能正确加载ReferenceManagerPackage包)
最近安装了VS2017,在开发时需要添加引用,于是像原来使用vs2012那样直接右键,添加引用,结果弹出一个错误提示“未能完成操作.不支持此接口”.真真是见了鬼了...... google.度娘一顿搜 ...
- [bzoj3514][CodeChef GERALD07] Chef ans Graph Queries [LCT+主席树]
题面 bzoj上的强制在线版本 思路 首先可以确定,这类联通块相关的询问问题,都可以$LCT$+可持久化记录解决 用LCT维护生成树作为算法基础 具体而言,从前往后按照边的编号顺序扫一遍边 如果这条边 ...
- 染色 color
染色 color 题目描述 有一块矩阵平板,分成n*m个格子,一开始全是白色.在这上面进行k次染色,每次染色按照如下步骤:1. 随机选择一个格子,称为A.2. 随机选择一个格子,称为B.3. 将由A ...
- FastDfs java客户端上传、删除文件
#配置文件 connect_timeout = 2 network_timeout = 30 charset = UTF-8 http.tracker_http_port = 9090 http.an ...
- php 内核变量 引用计数器写时复制
写时复制,是一个解决内存复用的方法,就是你在php语言层,如$d=$c=$b=$a='value';把$a赋给另一个或多个变量,这时这个变量都只占用一个内存块,当其中一个变量值改变时,才会开辟另一个内 ...
- 倒置函数reverse的用法
倒置字符串函数reverse:用于倒置字符串s中的各个字符的位置,如原来字符串中如果初始值为123456,则通过reverse函数可将其倒置为654321,程序如下:#include<stdio ...
- 【git】Git 常用命令大全
Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势.
- 转 C++中的static关键字
C++中的static关键字 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作 ...