【白痴弟弟和你加强应用层】阅读 Develop API Guides 思考(一个)

【白痴弟弟和你加强应用层】阅读 Develop API Guides 思考(一个)

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992

动态检測设备属性

我们能够使用以下的代码动态检測当前设备是否具备某一个特性,如是否有方向传感器

PackageManager pm = getPackageManager();
if(!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device does not have a compass, turn off the compass feature
    disableCompassFeature();
}

关于targetSdkVersion的含义

我们常常在清单文件中面这样设置

<manifest ... >
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
    ...
</manifest>

android:minSdkVersion是指我们的App兼容的最低版本号,也就是我们的App在这个版本号之下就不能正常执行了,可能是由于使用了更高版本号的API或者是Theme,反正就是不能正常执行。

而android:targetSdkVersion属性所指定的则是经过我们优化的最高版本号。这个属性并不能保证我们我们的App不能执行在更高的版本号上。而是用来说明我们的App是否应该继承在更高版本号上发生的行为改变。假设我们没有更新:targetSdkVersion到最新的版本号,那么在最新的版本号上执行的时候。那么系统就假设我们的App是须要向后兼容的。

举个样例,在4.4版本号中,AlarmManager的行为发生了改变。为了节省电量,系统会将时间相差点儿相同的Alarm放在一起执行,这样就不能保证你的Alarm准时执行。所以说,假设你的targetSdkVersion大于等于19,那么执行时间就是不确定的。可是假设是小于19,那么就会使用之前老的API。保证Alarm能够准时执行。

关于onSaveInstanceState()的高级知识

我们都知道假设实现onSaveInstanceState(),能够在里面保存一些界面的状态,这样在UI恢复的时候,可能会使用保存的值恢复UI现场。

事实上,默认的onSaveInstanceState()实现会保存当前界面全部具有id属性的View的状态,用于现场恢复。Android的framework框架中的差点儿全部的控件都恰当的实现了onSaveInstanceState()方法,比方EditText会保存文本。CheckBox会保存选中状态等。

所以,假设你想恢复现场,给布局中的控件都设置一个id属性就ok啦~

当然,我们也能够自己控制让View不自己保存状态。仅仅要设置 android:saveEnabled为false或者是调用setSaveEnabled()就能够了

另外。假设你想測试你的Activity能不能正常的保存用户数据,你仅仅须要改变你的屏幕方向就能够測试啦。在屏幕方向发生改变的时候。你的Activity会被Destory然后Create,Activity上的信息都不应该丢失,否则,去改改你的代码吧。

事实上啊,之所以屏幕方向改变,Activity会又一次生成,是由于在执行时。设备的configurations发生了改变,为了让我们App能够感应这样的变化并作出正确的反应。系统会又一次载入当前的Activity,这样的变化包含屏幕方向变化,语言环境变化,键盘状态变化等等。和我们在Activity的标签下设置的 android:configChanges是全然一样的

关于startActivity和Intent

我们使用Intent来启动一个Activity是再简单只是的事情了,可是,假设你想要发送一个隐式意图开启Activity的话。你须要考虑没有Activity与你的Intent的Action匹配的情况,由于这样会造成程序crash。所以,以后在发送隐式意图的时候,用以下的这样的形式吧

Intent intent = new Intent(AlarmClock.ACTION_SET_TIMER)
                .putExtra(AlarmClock.EXTRA_MESSAGE, "Timer'")
                .putExtra(AlarmClock.EXTRA_LENGTH, 60)
                .putExtra(AlarmClock.EXTRA_SKIP_UI, true);
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        } else {
            Toast.makeText(this, "No Activity", Toast.LENGTH_SHORT).show();
        }

版权声明:本文博主原创文章,博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116804.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sql的隐式转换_js强制转换和隐式转换

    sql的隐式转换_js强制转换和隐式转换什么叫做隐式转换? 显示转换,就是你使用转换函数进行操作。隐式转换,就是你不使用转换函数,默认就给转换了。比如定义一个int型的变量@a,然后给变量符值set@a=’2’,这个就会隐式转换,把字符转换成数字了。Oracle隐式转换1     Oracle 隐式转换           Oracle中对不同类型的处理具有显式类型转换(Explicit)和隐式类型转换(Implicit…

    2022年10月11日
    4
  • 舵机的工作原理和控制[通俗易懂]

    舵机的工作原理和控制[通俗易懂]控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。舵机的控制一般需要一个20

    2022年6月12日
    30
  • windows下如何安装git及配置环境_git安装失败

    windows下如何安装git及配置环境_git安装失败下载安装1.从git官网下载一个git安装包,官网下载地址http://www.git-scm.com/download/2.双击安装程序(如果没有SecurityWarning请跳过此步骤),请点击【Run&gt;】3.阅读协议,点击【Next&gt;】4.选择安装位置,点击【Next&gt;】5.选择安装组件:这里可以使用默认选项,点击【Next…

    2025年10月2日
    5
  • XMind思维导图快捷键[通俗易懂]

    XMind思维导图快捷键[通俗易懂]快捷键的使用会让我们的工作效率大大的提高,XMind做为思维导图中软件的佼佼者,让众多办公的人们体会到了便捷;这么好使的一个工具,它的快捷键还不快快的学习/使用起来吗?需要更多教程,微信扫码即可XMind快捷键汇总先来张比较全的大图然后我们再来分解快捷键的大图,顺序按照XMind顶部的菜单顺序。一、文件【注】Command为Mac系统,若为Windows系统换为Ctrl即可,例如:Command+C/V(Mac)=>Ctrl+C/V…

    2022年5月30日
    36
  • R6034错误,C Runtime Error

    R6034错误,C Runtime Error这是我转的一篇非常全的帖子 nbsp 能查到的解决方法都在里面有提及 nbsp 我是使用 stdafx h 加入这句 code pragmacommen linker manifestdepe type Win32 name Microsoft VC80 CRT version 8 0 50608 0 processorArc X86

    2025年7月23日
    4
  • J2EE架构师之路

    J2EE架构师之路不经意的回首,工作进入第五个年头了,发现走过了从Java程序员到J2EE架构师的历程。发现电脑上安装了各种各样的J2EE工具:JBuilder,WSAD,Eclipse,Rose,Together,Weblogic,Jtest,Optimizator,Mysql…发现电脑上保存了各种各样的OpenSource项目:Tomcat,JBoss,Ant,Hibernate,Spr

    2022年6月30日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号