1. 程式人生 > >Android中如何判斷Intent是否存在

Android中如何判斷Intent是否存在

當Android系統呼叫Intent時,如果沒有找到Intent匹配的Activity元件(Component),那麼應用將報以下錯誤:

android.content.ActivityNotFoundException:Unable to find explicit activity class

如果沒有使用UncaughtExceptionHandler類來處理全域性異常,那麼程式將異常退出造成不好的使用者體驗。為了防止ActivityNotFoundException錯誤的出現,在啟動Activity之前先判斷Intent是否存在。
程式碼如下

public static boolean isIntentAvailable(Context context, Intent intent) {
    final PackageManager packageManager = context.getPackageManager();
    List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
            PackageManager.GET_ACTIVITIES);
    return list.size() > 0;
}