对于安卓锁屏中知识点小结

java.lang.Double.parseDouble():

该方法返回了一个新的双初始化为指定字符串表示的值,这样作由于double类有valueof的方法。java

本例中用于讲一个字符串转换为数字的方法,若是执行没有触发异常就表示为电话号码。android

String.Contains()方法:

该方法用于检查是否包含对应内容,只支持charsequence,即字符序列。
本例中,用于检查坐着的手机号是否包含在短信来源中数组

监听短信SMS监听:app

首先提取intent中的bundle对象,而后使用pdu密钥提取SMS plus数组,每个pdu都表示一个sms消息,使用SmsMessage的createFromPdu()方法将每个pdu字节数组转换成为Smsmessage对象,调用该对象的getOriginatingAddress()方法可获取发送方手机号,getMessageBody()方法能够获取短信的内容。函数

时间判断isflag():

我的认为就是一个判断的指标,相似于if中的判别式server

保证SMSserver不被杀死的方法:

service+broadcastxml

Service:可经过context.startservice(对于本地服务)和context.bindseverice(对于远程服务)来启动。对象

法一:使用onStartCommand方法,返回START_STICKY排序

法二:提高service进程优先级生命周期

法三:
提高service优先级

进程优先级排序从高到低:

前台进程>可视进程>次要服务进程>后台进程>内容供应节点>空进程

将service放到前台,可是注意onDestroy里须要stopForeground(true)

法四:在onDestroy方法里重启service

法五:设置android:persistent=“true”(不知道我看的对不对,应该没问题)不要乱设置!

法六:经过系统的各类广播监听

法七:经过开启两个app,相互监听。

SharedPreference存储:

一、context类中的getSharedPreferences()方法

有两种模式:MODE_PRIVATE---仅当前应用才可读写

MODE_MULTI_PROGRESS---可容许多个进程读写

二、Activity类中的getPreferences()方法

只能在该activity中使用

三、PreferenceManager类中的getDefultSharedPreferences()方法

静态方法

步骤:
调用SharedPreference对象的edit()方法获取一个SharedPreference.editor对象

向SharedPreference.editor中添加数据,方式对应为 布尔型——putBoolean、字符串——putString()

调用commit()方法将添加的数据提交。

Intent四大属性:

Action、Data、Category、Extras

Action:Action属性的值为一个字符串,它表明了系统中已经定义了一系列经常使用的动做。经过setAction()方法或在清单文件AndroidManifest.xml中设置。默认为:DEFAULT。
  
Data:Data一般是URI格式定义的操做数据。例如:tel:// 。经过setData()方法设置。
  
Category:Category属性用于指定当前动做(Action)被执行的环境。经过addCategory()方法或在清单文件AndroidManifest.xml中设置。默认为:CATEGORY_DEFAULT。
  
Extras:Extras属性主要用于传递目标组件所须要的额外的数据。经过putExtras()方法设置。

(1)在AndroidMainfest.xml 中对每个Activity都作了说明——intent-filter,intent-filter声明了须要接收怎样的Intent,当发送的Intent和intent-filter中定义的相符合,就会启动相应的Activity;

(2)当有多个Activity符合发送的Intent时,Android系统会列出全部知足Intent的Activity,用户能够经过选择进行相关的操做;

(3)在一个Activity的intent-filter中能够有多个action、多个category、多个data,这样能够有多种组合与Intent进行匹配。注意:若是在一个Activity中有多个Intent进行匹配的时候,建议使用多个intent-filter与Intent进行匹配。猜想:这样应该能够提升Intent的匹配速度。

(4)data属性,这是一个进行反向限制Intent的操做,要求Intent的data必须是intent-filter中声明的数据之一(应为在一个intent-filter中能够设置多个data)。注意:若是要启动目标Activity,可是指定的data数据类型与Activity中data数据类型不匹配,将会形成ActivityNotFoundException异常。

Class.forName()用法及与new区别(没搞透)

从JVM的角度看,咱们使用关键字new建立一个类的时候,这个类能够没有被加载。可是使用newInstance()方法的时候,就必须保证:一、这个类已经加载;二、这个类已经链接了。 而完成上面两个步骤的正是Class的静态方法forName()所完成的,这个静态方法调用了启动类加载器,即加载 java API的那个加载器。

new 和Class.forName()有什么区别? 其实上面已经说到一些了,这里来作个总结: 首先,newInstance( )是一个方法,而new是一个关键字; 其次,Class下的newInstance()的使用有局限,由于它生成对象只能调用无参的构造函数,而使用 new关键字生成对象没有这个限制。 简言之:newInstance(): 弱类型,低效率,只能调用无参构造。new: 强类型,相对高效,能调用任何public构造。Class.forName(“”)返回的是类。Class.forName(“”).newInstance()返回的是object

长短信发送:

public void sendMultipartTextMessage

发送短信的三种方式:

发送信息的三种方法(在android.telephony.SmsManager中定义)

SmsManager.getDefault().sendDataMessage(destinationAddress, scAddress, destinationPort, data, sentIntent, deliveryIntent); 

SmsManager.getDefault().sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent); 

SmsManager.getDefault().sendMultipartTextMessage(destinationAddress, scAddress, parts, sentIntents, deliveryIntents);

Activity中finish() onDestroy() 和System.exit()的区别

Finish():activity内容须要关闭,将其移出栈,可是资源并无释放,空间依旧是被占用的。

onDestroy():在activity生命周期最后一步,将资源空间回收,也就是与此activity有关的内容所有处理完成。

Exit(0):推出整个应用程序,针对整个app,将整个app所有kill掉。

相关文章
相关标签/搜索