Nougat(牛轧糖)
谷歌发布了Android N 增添了一系列功能 ,如多窗口支持我们可以一遍看视频一遍聊QQ,通知栏的功能增强,我们可以直接在通知栏中进行消息的回复等。下面就让我们来一探究竟
0x01 分屏模式
分屏功能展示图分屏模式下Activity的生命周期
有了分屏模式我们自然关心的是分屏状体下activity的生命周期,下面分析一下两中情况下Activity的生命周期
** 场景一:由正常模式切换的分屏模式 (其实我们可以把它看成一次手机屏幕的翻转 是一样的效果)
activity的调用方法
执行过程onpause()->onSaveInstanceState->onstop->ondestory->
oncreate->onStart->onRestoreInstanceState->onResume 会执行多次**
Tips:如果我们不想创建activity实例 添加如下代码 每次屏幕翻转时只会调用onConfigurationChanged方法 和以前处理屏幕翻转的效果是一样的
添加configchanges
场景二:如下图演示了 在分屏的状态下当两个activity来回切换操作的情况下 AndroidN项目对应的Activty的生命周期,当左侧activity获得焦点是会执行onResume方法,当用户操作右侧activity时由于左侧activity失去焦点但是可见所以会执行onPause方法
左侧activity对应的执行方法
执行过程 当activity失去焦点执行onpause重新获取焦点执行onResume
onpause->onResume->onPause->onResume.....
下面是google官方建议
注:在多窗口模式中,用户仍可以看到处于暂停状态的应用。 应用在暂停状态下可能仍需要继续其操作。 例如,处于暂停模式但可见的视频播放应用应继续显示视频。 因此,我们建议播放视频的 Activity 不要暂停其 onPause() 处理程序中的视频。 应暂停 onStop() 中的视频,并恢复 onStart()中的视频播放。
在多窗口模式中启动新 Activity
下面演示在分屏情况下启动activity的两种情况
示例代码 在一侧启动activity
支持拖放
拖拽效果图有了这个功能我们在分屏状态下将相册的图片直接拖拽到我们想发布的应用上当然需要这两个应用都提供了拖拽支持下面我们看看代码是如何实现的
MainActivity中EditText添加的事件
SecondActivity中EditText添加的事件
0x02 Notification功能增强
下面是摘自google官网的一句话
N is for Notifications
可见notification的在Android N系统中的重要性
首先看一下Android N的通知栏布局与之前的差别
对比图
首先,最明显的变化是通知的默认外观已经显著改变。除了应用程序的图标和名称会固定在通知内,很多分散在通知周围的字段也被折叠进新的标题行内。这一改变是为了确保尽可能腾出更多空间给标题、文本和大图标,这样一来通知就比现在的稍大些,更加易读。
捆绑通知
Android N通知栏效果图支持在通知栏直接回复
直接回复效果图消息传递样式
消息传递样式效果图0x03 Data Saver
Data Saver这个功能主要用于减少app的流量消耗,阻止一些应用在后台发送和接受数据
Code
参考链接
1.http://tech.qq.com/a/20160701/004258.htm
2.https://developer.android.com/preview/features/multi-window.html?hl=zh-cn#running
3.http://android-developers.blogspot.jp/2016/06/notifications-in-android-n.html
4.https://www.zhihu.com/question/46501376/answer/101728826