2

MyMainActivityは、Android N の新しいマルチウィンドウ モードをサポートしています。ただし、AwesomeActivityマルチウィンドウをサポートしないでください。

私は次のことを試しました:

AndroidManifest.xml

<activity
    android:name=".activities.MainActivity"
    android:label="@string/app_name"
    android:windowSoftInputMode="stateHidden"/>
<activity android:name=".activities.AwesomeActivity"
    android:resizeableActivity="false" />

MainActivity.java

Intent intent = new Intent(this, AwesomeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
//removing CLEAR_TOP and SINGLE_TOP has no effect either
//Intent.FLAG_ACTIVITY_CLEAR_TASK in conjunction with Intent.FLAG_ACTIVITY_NEW_TASK does not have an effect either

Intent.FLAG_ACTIVITY_NEW_TASK(の有無にかかわらずIntent.FLAG_ACTIVITY_CLEAR_TASK)を追加するAwesomeActivityと、それが独自のタスク スタックのルート アクティビティになるため、 でマルチウィンドウ モードに入ることができないはずだと考えましたAwesomeActivity

ただし、これは機能しません。 からマルチウィンドウ モードに切り替えることはできますがAwesomeActivity、これは望ましい動作ではありません。

の組み合わせはIntent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASKAwesomeActivityを起動するように見えますが、AwesomeActivityでアプリをバックグラウンドに置いてからAwesomeActivityをフォアグラウンドに戻すと、MainActivityに戻ることができなくなるという意味では機能しません。タスクスタックから消去されました。ほとんどの場合、ユーザーは元に戻りたいと考えているMainActivityため、このソリューションでは不十分です。

4

2 に答える 2

0

FLAG_ACTIVITY_NEW_TASK不十分であると思われる。との両方FLAG_ACTIVITY_NEW_TASKを使用すると、次のようにFLAG_ACTIVITY_MULTIPLE_TASK機能します。

      startActivity(new Intent(MainActivity.this, ActivityTwo.class)
        .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_MULTIPLE_TASK));
于 2016-09-02T18:10:36.637 に答える
-1

これを追加して試してみてください、私は確認していません android:resizeableActivity="false"

サポートについては、このリンクを確認してくださいhttps://developer.android.com/guide/topics/ui/multi-window.html#overview

于 2016-09-02T16:55:46.857 に答える