Firefly开源社区

标题: 3288的双屏异显,副屏无法打开activity [打印本页]

作者: cevictorle    时间: 2018-2-22 08:46
标题: 3288的双屏异显,副屏无法打开activity
本帖最后由 cevictorle 于 2018-2-22 08:48 编辑

各位大大好,小弟已经打开了板子的双屏异显功能,可以移动app到副屏,并且做到了两块触摸屏设备事件分别分发到主副屏。
然而副屏的app只能在MainActivity上操作,如果尝试startActivity就会报错,log如下:
Activity Manager Crash
java.lang.IndexOutOfBoundsException: Invalid index 1, size is 0at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.add(ArrayList.java:147)
at com.android.server.wm.Task.addAppToken(Task.java:50)
at com.android.server.wm.WindowManagerService.addAppToken(WindowManagerService.java:4547)
at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:2363)
at com.android.server.am.ActivityStackSupervisor.startActivityUncheckedLocked(ActivityStackSupervisor.java:2282)
at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1575)
at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1008)

at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:3529)
at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:3516)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:139)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2309)
at android.os.Binder.execTransact(Binder.java:446)
大概就是apptoken的list溢出了
请问有什么办法可以让副屏也能打开activity呢

作者: vinsionLeo    时间: 2018-2-24 09:24
遇到同样的问题,只要在副屏APP上调用startActivity就会崩溃
作者: cevictorle    时间: 2018-2-28 05:40
vinsionLeo 发表于 2018-2-24 09:24
遇到同样的问题,只要在副屏APP上调用startActivity就会崩溃

我最近还在继续研究这个问题,应该是副屏的content没有初始化activity栈,如果有进展会在这里贴。加油
作者: cevictorle    时间: 2018-3-2 05:47
自顶,官方实现是把window移动到seconddisplaycontent里面,然后为了不随主屏退出所以从返回栈里清掉了这个apptoken,等到退出双屏时再加进来。看起来如果想要副屏能开activity在副屏上,要么在ams里面再加一个activitystack专门给副屏用,要么想办法在同一个栈里同时不被主屏影响。继续研究中
作者: thomson    时间: 2018-10-10 16:24
楼主实现了吗?求分享思路




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1