You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Android Activity从副显示屏迁移至手机主屏

把副屏的Activity移回主屏的解决方案

嘿,我刚好碰到过类似的需求,给你两个靠谱的实现方式:

方法一:通过代码调用moveTaskToDisplay()直接移动

这是最直接的程序化实现方式,你可以在需要触发移动的地方(比如主屏上的按钮点击事件、或者副屏Activity里的返回逻辑)执行以下代码:

  1. 首先获取主屏的Display ID:
    通常主屏的ID是0,但为了兼容不同设备,建议通过DisplayManager主动获取:

    val displayManager = getSystemService(Context.DISPLAY_SERVICE) as DisplayManager
    val mainDisplayId = displayManager.displays.firstOrNull { it.type == Display.TYPE_INTERNAL }?.displayId ?: 0
    
  2. 调用moveTaskToDisplay()将当前Activity所在的任务移到主屏:

    // 在副屏的Activity中调用
    moveTaskToDisplay(mainDisplayId)
    

    如果你是从主屏的组件触发移动,只要是同一个App内的任务,直接在目标Activity里调用上面的代码就足够简单。

方法二:利用系统原生交互(手动操作)

如果是用户手动操作的场景,Android 8.0+的多任务视图支持直接拖拽Activity到主屏:

  • 打开系统多任务界面(通常按最近任务键)
  • 找到副屏上的那个Activity缩略图
  • 直接拖拽它到主屏的显示区域即可完成移动

注意事项

  • 确保你的Activity在Manifest中配置了支持多窗口模式:android:resizeableActivity="true"(Android 8.0及以上版本默认开启,但显式声明更稳妥)
  • moveTaskToDisplay()方法要求API级别26及以上,刚好匹配你使用的Android 8.0+环境
  • 跨App的Activity移动会有系统权限限制,但同一个App内的操作完全不受影响

内容的提问来源于stack exchange,提问作者jaden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 15:37:28