5

Android N (SDK 24) の分割画面で別のアプリを開くにはどうすればよいですか?

ドキュメントで私はこれを見つけました:


マルチウィンドウ モードで新しいアクティビティを起動する

新しいアクティビティを開始するとき、可能であれば新しいアクティビティを現​​在のアクティビティの隣に表示するようシステムに指示できます。これを行うには、フラグ Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT を使用します。このフラグを渡すと、次の動作が要求されます。

デバイスが分割画面モードの場合、システムはそれを起動したアクティビティの隣に新しいアクティビティを作成しようとするため、2 つのアクティビティが画面を共有します。システムはこれを実行できるとは限りませんが、可能であればアクティビティを隣接させます。デバイスが分割画面モードでない場合、このフラグは効果がありません。デバイスがフリーフォーム モードで、新しいアクティビティを起動する場合、ActivityOptions.setLaunchBounds() を呼び出して、新しいアクティビティのサイズと画面の位置を指定できます。デバイスがマルチウィンドウ モードでない場合、このメソッドは効果がありません。


これを試してみると、Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENTフラグは存在しません。インストールしました

  • Android 6.x (N) SDK 24 リビジョン 1
  • Android N Preview SDK N リビジョン 3
  • Android 6.0 (マシュマロ) SDK 23 リビジョン 3

これは私のgradleです:

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'
}
4

2 に答える 2

2

まず、アプリは SDK 24+ バージョンをターゲットにする必要があります。24 未満の SDK を対象とした場合、分割画面モードは機能しません。次に、ここここを注意深く読んでください

デバイスが分割画面モードの場合、システムはそれを起動したアクティビティの隣に新しいアクティビティを作成しようとするため、2 つのアクティビティが画面を共有します。システムはこれを実行できるとは限りませんが、可能であればアクティビティを隣接させます。

このフラグは、分割画面マルチウィンドウ モードでのみ使用されます。新しいアクティビティは、それを起動したアクティビティの隣に表示されます。これは、FLAG_ACTIVITY_NEW_TASK と組み合わせてのみ使用できます。また、既存のアクティビティの新しいインスタンスを作成する場合は、FLAG_ACTIVITY_MULTIPLE_TASK を設定する必要があります。

これは、分割画面モードをプログラムで開始できないことを意味します。すでに分割画面モードになっている場合は、画面の別の部分でアクティビティを開始してみてください。

于 2017-03-23T16:07:17.210 に答える