10

I want to disable multi-window support for an activity in my app. I have set resizeableActivity to false in my Manifest but when I long press recent app icon, the app still goes in multi-window mode. Below is my manifest:

<activity
    android:name=".MainActivity"
    android:resizeableActivity="false"
    android:excludeFromRecents="true"
    android:icon="@drawable/ic_launcher_home"
    android:theme="@style/AppThemeV3.CustomToolbar">
</activity>

Per documentation:

android:resizeableActivity=["true" | "false"]

If the attribute is set to false, the activity does not support multi-window mode. If this value is false, and the user attempts to launch the activity in multi-window mode, the activity takes over the full screen.

I have also tried to set this attribute to false at application level in manifest but it still starts in multi-window mode. Any pointer on what I am doing wrong will be highly appreciated?

Community
  • 1
  • 1
user899849
  • 311
  • 4
  • 15

3 Answers3

7

The activity that is at the root of the task controls the window size. Your choices are:

  1. Trace back to all possible task root activities in your app and ensure they all also have android:resizeableActivity="false"

  2. Force this activity into another task, via Intent flags when you start it or manifest settings

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
  • Perfect...that fixed it. Thank you so much for your help!!! I had the flag set at application level but that did not work. When I set the flag at the root activity, that did the trick. Wondering why application level flag did not work? Thanks again!! – user899849 Jul 22 '16 at 14:41
  • @user899849: That attribute is only for `` and does not appear in [the documentation for ``](https://developer.android.com/guide/topics/manifest/application-element.html). – CommonsWare Jul 22 '16 at 14:59
  • 2
    It is worth saying that Intent.FLAG_ACTIVITY_NEW_TASK is notoriously buggy. So for others encountering this - you probably want to set the taskAffinity for the new activity to something different from the default. For example: – M.Paunov Oct 26 '16 at 11:05
  • @CommonsWare - android:resizeableActivity=["true" | "false"] attribute is available at level. Your fact is incorrect. I still don't understand what's the point of having an activity specific flag at application level? If mentioned at application level does it apply to all activities? – Akh Jul 26 '18 at 19:24
  • @AKh: "android:resizeableActivity=["true" | "false"] attribute is available at level" -- they added it to the docs sometime after I wrote that comment. "If mentioned at application level does it apply to all activities?" -- yes. – CommonsWare Jul 26 '18 at 21:56
4

[UPDATE] set android:resizeableActivity="false" in application tag. This will work now.

Vineeth
  • 150
  • 1
  • 13
0

I have meet this problem before, and I try many time find that your must add android:launchMode="singleTask" && android:resizeableActivity="false" at the same time.