Android 10.0以上后台不能启动Activity的解决方法

在android Q以后 google不允许在后台service 广播等等启动Activity 具体请看google文档
https://developer.android.google.cn/guide/components/activities/background-starts 有一些做法 也可以通过在后台发送一个通知的方式 然后
点击通知的方式来启动Activity 这也是一种方法 但是不是很方便 所以既然做定制化开发 通过修改系统源码的方式 也是可以解决这个问题的

首选在AMS来负责启动Activity
而Ams中在后台启动Activity 会执行moveTaskToFront()

    @Override
    public void moveTaskToFront(IApplicationThread appThread, String callingPackage, int taskId,
            int flags, Bundle bOptions) {
   
        mActivityTaskManager.moveTaskToFront(appThread, callingPackage, taskId, flags, bOptions);
    }

而在ActivityTaskManagerService.java 中 moveTaskToFront

你可能感兴趣的:(后台启动Activity,解决后台启动Activity)