
谷歌发布了Android N 增添了一系列功能 ,如多窗口支持我们可以一遍看视频一遍聊QQ,通知栏的功能增强,我们可以直接在通知栏中进行消息的回复等。下面就让我们来一探究竟
0x01 分屏模式

分屏模式下Activity的生命周期
有了分屏模式我们自然关心的是分屏状体下activity的生命周期,下面分析一下两中情况下Activity的生命周期
** 场景一:由正常模式切换的分屏模式 (其实我们可以把它看成一次手机屏幕的翻转 是一样的效果)


执行过程onpause()->onSaveInstanceState->onstop->ondestory->
oncreate->onStart->onRestoreInstanceState->onResume 会执行多次**
Tips:如果我们不想创建activity实例 添加如下代码 每次屏幕翻转时只会调用onConfigurationChanged方法 和以前处理屏幕翻转的效果是一样的


场景二:如下图演示了 在分屏的状态下当两个activity来回切换操作的情况下 AndroidN项目对应的Activty的生命周期,当左侧activity获得焦点是会执行onResume方法,当用户操作右侧activity时由于左侧activity失去焦点但是可见所以会执行onPause方法


执行过程 当activity失去焦点执行onpause重新获取焦点执行onResume
onpause->onResume->onPause->onResume.....
下面是google官方建议
注:在多窗口模式中,用户仍可以看到处于暂停状态的应用。 应用在暂停状态下可能仍需要继续其操作。 例如,处于暂停模式但可见的视频播放应用应继续显示视频。 因此,我们建议播放视频的 Activity 不要暂停其 onPause() 处理程序中的视频。 应暂停 onStop() 中的视频,并恢复 onStart()中的视频播放。
在多窗口模式中启动新 Activity
下面演示在分屏情况下启动activity的两种情况


支持拖放

有了这个功能我们在分屏状态下将相册的图片直接拖拽到我们想发布的应用上当然需要这两个应用都提供了拖拽支持下面我们看看代码是如何实现的


0x02 Notification功能增强
下面是摘自google官网的一句话
N is for Notifications
可见notification的在Android N系统中的重要性
首先看一下Android N的通知栏布局与之前的差别

首先,最明显的变化是通知的默认外观已经显著改变。除了应用程序的图标和名称会固定在通知内,很多分散在通知周围的字段也被折叠进新的标题行内。这一改变是为了确保尽可能腾出更多空间给标题、文本和大图标,这样一来通知就比现在的稍大些,更加易读。
捆绑通知

支持在通知栏直接回复

消息传递样式

0x03 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
网友评论