【问题标题】:How to make the Force Close window display friendly app name instead of a package name?如何使强制关闭窗口显示友好的应用程序名称而不是包名称?
【发布时间】:2011-09-23 19:34:27
【问题描述】:

我认为可以将 Android 中强制关闭窗口中的 Java 包名称替换为更具可读性的应用程序名称。但是,我找不到任何信息如何做到这一点或回忆我在哪里看到它。我试图在谷歌和 SO 上搜索但没有运气。我的清单中有活动和应用程序标签的标签。

是否可以在FC窗口中设置自定义应用名称,如果可以,如何设置?

【问题讨论】:

  • 我敢打赌这是不可能的。那很好笑。您想改善一个对话框的外观,您应该始终避免出现它并告诉用户您的应用程序正在做坏事;-)
  • 如果可能的话,它必须在系统级别而不是应用程序级别实现。

标签: android


【解决方案1】:

有一种方法可以设置全局异常处理程序,该处理程序将捕获在该线程上引起的任何异常。所以你将它设置在你的主要活动中,它将适用于每个子活动。

但是!永远不要这样做来抑制异常并简单地显示一个对话框,因为它看起来更好(我什至肯定这将是你所能拥有的最愚蠢的想法,因为你'正在禁用一个可以帮助您修复异常行为的基本功能)。这不是处理程序的目的!通常处理程序会调用先前的默认处理程序来保留默认的异常处理。它只需要崩溃信息。

我写这个是因为this answer。没有恶意!试图强迫错误行为只是一个很大的警告。

final UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(Thread thread, Throwable ex) {
        // get the crash info
        defaultHandler.uncaughtException(thread, ex);
    }
});

【讨论】:

  • 感谢您的回答。我也认为抑制异常不是一个好主意。我只是想知道为什么我在某些应用程序的 FC 对话窗口中看到了一个用户友好的应用程序名称。可惜我不记得在哪里看到的了。这是很久以前的事了,也许是“自定义 ROM 功能”,因为我经常更换 ROM。当然这并不重要,我只是好奇:)
  • (我真的不想用我的帖子冒犯某些人。这应该是一个全局声明。)你会发现这个示例很有可能是基于自定义 ROM,因为他们就是这样做的:修改系统资源
【解决方案2】:

如果不修改系统级别的代码,目前这是不可能的。但是,您可能看到的是应用程序的自定义错误处理程序。如果你用一个大的 try/catch 块包围你的大部分应用程序代码,你可以弹出你自己的对话框,通知用户一个错误(当然是你选择的应用程序名称和文本)。不过,这必须针对每个单独的活动进行,而且完全避免 FC(聘请测试组?)是更好的做法。

【讨论】:

    猜你喜欢
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 2012-03-04
    • 2016-07-22
    相关资源
    最近更新 更多