【阅读笔记】Android AMS forcestop停止应用

根据这篇文章作的笔记

基于Android 12的force-stop流程分析_android forcestop-优快云博客

在AMS中,停止指定的应用是一个常用的功能,在代码里可以看到

    @Override
6806    public void forceStopPackage(final String packageName, int userId) {
6807        if (checkCallingPermission(android.Manifest.permission.FORCE_STOP_PACKAGES)
6808                != PackageManager.PERMISSION_GRANTED) {
6809            String msg = "Permission Denial: forceStopPackage() from pid="
6810                    + Binder.getCallingPid()
6811                    + ", uid=" + Binder.getCallingUid()
6812                    + " requires " + android.Manifest.permission.FORCE_STOP_PACKAGES;
6813            Slog.w(TAG, msg);
6814            throw new SecurityException(msg);
6815        }
6816        final int callingPid = Binder.getCallingPid();
6817        userId = mUserController.handleIncomingUser(callingPid, Binder.getCallingUid(),
6818                userId, true, ALLOW_FULL_ONLY, "forceStopPackage", null);
6819        long callingId = Binder.clearCallingIdentity();
6820        try {
6821            IPackageManager pm = AppGlobals.getPackageManager();
6822            synchronized(this) {
6823                int[] users = userId == UserHandle.USER_ALL
6824                        ? mUserController.getUsers() : new int[] { userId };
6825                for (int user : users) {
6826                    if (getPackageManagerInternalLocked().isPackageStateProtected(
6827                            packageName, user)) {
6828                        Slog.w(TAG, "Ignoring request to force stop protected package "
6829                                + 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值