当前位置: 首页 > article >正文

Android 屏蔽某应用的ANR弹窗

Android 屏蔽某应用的ANR弹窗

frameworks/base/services/core/java/com/android/server/am/ErrorDialogController.java

已屏蔽"com.google.android.apps.wellbeing"应用的ANR弹窗为例:

    @GuardedBy("mProcLock")
    void showAnrDialogs(AppNotRespondingDialog.Data data) {
        List<Context> contexts = getDisplayContexts(
                mApp.mErrorState.isSilentAnr() /* lastUsedOnly */);
        mAnrDialogs = new ArrayList<>();
        for (int i = contexts.size() - 1; i >= 0; i--) {
            final Context c = contexts.get(i);
            mAnrDialogs.add(new AppNotRespondingDialog(mService, c, data));
        }
        scheduleForAllDialogs(mAnrDialogs, Dialog::show);
    }

修改为:

@GuardedBy("mProcLock")
    void showAnrDialogs(AppNotRespondingDialog.Data data) {
        Slog.w("TAG", "swallow a anr dialog, occur in app:" + data.proc.info.processName + ".");
        if (!"com.google.android.apps.wellbeing".equals(data.proc.info.processName)) {
            List<Context> contexts = getDisplayContexts(
                mApp.mErrorState.isSilentAnr() /* lastUsedOnly */);
            mAnrDialogs = new ArrayList<>();
            for (int i = contexts.size() - 1; i >= 0; i--) {
                final Context c = contexts.get(i);
                mAnrDialogs.add(new AppNotRespondingDialog(mService, c, data));
            }
            scheduleForAllDialogs(mAnrDialogs, Dialog::show);
        } else {
            ProcessRecord app = data.proc;
            final ProcessErrorStateRecord errState = app.mErrorState;
            errState.setNotResponding(false);
            errState.getDialogController().clearAnrDialogs();
        }
    }

http://www.kler.cn/a/613101.html

相关文章:

  • 淘宝flexible.js+rem适配移动端
  • Pydantic字段元数据指南:从基础到企业级文档增强
  • Github 热点项目 awesome-mcp-servers MCP 服务器合集,3分钟实现AI模型自由操控万物!
  • SEO(搜索引擎优化)详解
  • Flask(六)数据库与模型操作
  • Linux内核2-TFTP与NFS环境搭建
  • VSCode:Linux下安装使用
  • NX二次开发刻字功能——预览功能
  • 微信小程序——解构赋值与普通赋值
  • 【PostgreSQL内核学习 —— (sort算子)】
  • 数据库同步中间件PanguSync:如何跳过初始数据直接进行增量同步
  • HCIP VRRP MSTP 交换综合实验
  • 5.Matplotlib:高级绘图
  • SvelteKit 最新中文文档教程(13)—— Hooks
  • RHCA核心课程技术解析4:红帽服务管理与自动化深度实践
  • Java EE 进阶:MyBatis案例练习
  • 有价值的面试问题
  • 端到端自动驾驶VLM模型:LMDrive: Closed-Loop End-to-End Driving with Large Language Models
  • 通过Bioconductor/BiocManager安装生物r包详解(问题汇总)
  • 01 相机标定与相机模型介绍