亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android開發最佳實踐(二)

標簽:
Android

3)Android 6.0 Marshmallow的运行时权限

Android 6.0开始引入了新的运行时权限检查授权机制,替代了之前安装应用的时候对权限进行授权的方案。为了避免6.0及以上的机器运行发生运行时异常,我们需要做到至少以下5个步骤:


  • 检查系统版本号:针对6.0以下的系统版本,默认权限在安装的时候已经获取到了,对于6.0开始的版本,才需要做运行时的权限检查。

  • 检查申请的权限:在使用某个权限之前,需要检查权限是否已经获取到了。

  • 解释申请的权限:在权限没有获取到的情况下,需要通过shouldShowRequestPermissionRationable()的判断来决定如何给用户进行提示。

  • 执行申请权限操作:前面判断没有获取到权限,为了能够让功能顺利执行,我们会需要在代码里面再次执行申请此权限的操作。


  • 处理权限申请的结果:申请权限之后,我们需要处理申请的响应结果,分别处理权限申请成功与失败的情况。

4)使用MediaSessionCompat操作音乐的播放

MediaSessionCompat来自Android官方的兼容包,通过它可以告诉Android系统与其他的应用,自己正在播放的内容是什么以及自己支持哪些类型的播放控制:

在Android的官方培训课程中有介绍过关于 Media Button Receiver的概念,Android系统会把来自蓝牙控制器或者是耳机等其他设备的操作事件转换成Media Button事件传递出来,如果我们的应用程序需要监听这些事件并做出相应的响应,就需要注册MEDIA_BUTTON的action,接收到这些事件之后,再传递给音乐播放模块进行控制处理。

基于上面的认知,我们现在演示如何使用MediaSessionCompat,下面演示了如何构造一个MediaSessionCompat以及构造完之后通常需要做的三件事情:设置合理的flag,设置回调(在5.0开始会响应onPlay,onPause等等回调),设置激活。

搭建好了MediaSessionCompat之后,还需要通过MediaMetadataCompat来传递播放的资料信息,通过PlaybackStateCompat来传递播放的状态信息。

做了上面那些操作之后,MediaSessionCompat的任务就算是完成了。

5)使用Toolbar替代ActionBar

自从MaterialDesign开始,Android官方就开始使用Toolbar替代了原来的ActionBar,现在Toolbar已经加入Support兼容包。Toolbar是一个相比起ActionBar更加丰富,更加灵活的组件,另外它的布局本身还是View Hierarchy的一部分,这就意味着可以对Toolbar执行动画操作,增加点击滑动事件等等,甚至我们还可以在一个页面里面加入两个Toolbar。

为了启用Toolbar,首先要做的事情就是关闭当前Activity的ActionBar。我们可以通过使得Activity的主题继承Theme.AppCompat.NoActionBar,然后在对应的XML布局文件中,添加类似下面的toolbar布局信息:


[xml] view plaincopy

  1. <!--Toolbar-->  

  2. <android.support.v7.widget.Toolbar  

  3.     android:id="@+id/toolbar_layout"  

  4.     android:layout_width="match_parent"  

  5.     android:layout_height="wrap_content"  

  6.     android:layout_alignParentTop="true"  

  7.     android:minHeight="?attr/actionBarSize">  

  8. </android.support.v7.widget.Toolbar>  


在布局文件中添加Toolbar的信息之后,需要启动Toolbar替代ActionBar,需要像下面一样做设置:


[java] view plaincopy

  1. @Override  

  2. protected void onCreate(Bundle savedInstanceState) {  

  3.   super.onCreate(savedInstanceState);  

  4.     setContentView(R.layout.activity_main);  

  5.   

  6.     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_layout);  

  7.     setSupportActionBar(toolbar);  

  8. }  


关于更多Toolbar的细节,请参考官方文档https://developer.android.com/reference/android/support/v7/widget/Toolbar.html

原文链接:http://www.apkbus.com/blog-822415-76461.html

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消