Mr_*_*s_D 6 android android-intent android-activity android-settings
Settings类中的大多数Activity Actions(用于启动各种Settings活动)都带有警告:
在某些情况下,匹配的活动可能不存在,因此请确保您不会受到此类保护.
那我该如何防范呢?
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 ?
}
Run Code Online (Sandbox Code Playgroud)
如果我正确读取了这个,例如抛出了运行时异常(NPE).我希望能够使用更具体的东西ActivityNotFoundException- 但这样就够了吗?
如果我正确地阅读了此内容,例如会抛出运行时异常(NPE)
不,那是其他问题。显然Intent有效,因为崩溃来自“设置”本身,而不是调用的应用程序startActivity()。
我很想使用更具体的东西,比如 ActivityNotFoundException - 但这足够了吗?
它应该是。
如果您担心这一点,或者宁愿主动出击,而不仅仅是调用startActivity(),请首先使用PackageManager和resolveActivity()。如果返回null,则没有与 匹配的活动Intent,您应该尝试其他操作。
| 归档时间: |
|
| 查看次数: |
710 次 |
| 最近记录: |