大部分活动操作(用于启动各种设置活动) 设置 类带有警告:

在某些情况下,匹配的活动可能不存在,因此请确保防范这种情况。

那么我该如何防范呢?

try {
    final Intent i = new Intent(Settings. ACTION_WIRELESS_SETTINGS); // say
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // not sure if needed
    startActivity(i);
} catch (Exception e) { // what should I catch here 
    // I would hate to catch Throwable, but should I ?
}

如果我读 正确,例如抛出运行时异常(NPE)。我很想使用更具体的东西,比如 ActivityNotFoundException - 但这就足够了吗?

有帮助吗?

解决方案

如果我正确地阅读了此内容,例如会抛出运行时异常(NPE)

不,那是其他问题。这 Intent 显然有效,因为崩溃来自“设置”本身,而不是调用的应用程序 startActivity().

我很想使用更具体的东西,比如 ActivityNotFoundException - 但这足够了吗?

它应该是。

如果您担心这一点,或者宁愿主动采取行动,而不仅仅是打电话 startActivity(),第一次使用 PackageManagerresolveActivity(). 。如果返回 null, ,没有匹配的活动 Intent, ,你应该尝试别的东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top