Koe*_*ren 5 java android android-intent split-screen-multitasking android-7.0-nougat
如何在 android N (SDK 24) 中分屏打开另一个应用程序?
在文档中我发现了这一点:
以多窗口模式启动新活动
当您启动一项新活动时,您可以提示系统新活动应显示在当前活动旁边(如果可能)。为此,请使用标志 Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT。传递此标志请求以下行为:
如果设备处于分屏模式,系统会尝试在启动它的 Activity 旁边创建新 Activity,以便这两个 Activity 共享屏幕。系统不保证能够做到这一点,但如果可能的话,它会使活动相邻。如果设备未处于分屏模式,则此标志无效。如果设备处于自由格式模式并且您要启动新活动,则可以通过调用 ActivityOptions.setLaunchBounds() 指定新活动的尺寸和屏幕位置。如果设备不处于多窗口模式,则此方法无效。
所以当我尝试这个时,该Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT标志不存在。我安装了
这是我的等级:
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig {
applicationId "PACKAGENAME"
minSdkVersion 16
targetSdkVersion 24
versionCode 2
versionName "2.4.1"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0'
compile 'com.android.support:design:24.0.0'
compile 'org.jsoup:jsoup:1.8.3'
compile 'com.android.support:support-v4:24.0.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
}
Run Code Online (Sandbox Code Playgroud)
首先,应用程序应针对 SDK 24+ 版本。如果它的目标版本低于 24 SDK,则分屏模式将无法工作。然后仔细阅读这里和这里
如果设备处于分屏模式,系统会尝试在启动它的 Activity 旁边创建新 Activity,以便这两个 Activity 共享屏幕。系统不保证能够做到这一点,但如果可能的话,它会使活动相邻。
该标志仅在分屏多窗口模式下使用。新活动将显示在启动它的活动旁边。这只能与 FLAG_ACTIVITY_NEW_TASK 结合使用。此外,如果您想要创建现有活动的新实例,则需要设置 FLAG_ACTIVITY_MULTIPLE_TASK。
这意味着您无法以编程方式启动分屏模式。如果您已经处于分屏模式,您可以尝试在屏幕的另一部分启动活动。