从哪看出会去调用getType方法

  menu.addIntentOptions(Menu.CATEGORY_ALTERNATIVE, 0, 0,
                new ComponentName(this, MyContacts.class), null, intent, 0, null);
 startActivity(new Intent(Intent.ACTION_INSERT, getIntent().getData()));

程序执行上面两条语句时都会去调用getType方法,不知道是从哪个参数里看出来的?

 // URI类型转换
    public String getType(Uri uri)
    {
        switch (uriMatcher.match(uri))
        {
            case CONTACTS:
                return "vnd.android.cursor.dir/contacts";
            case CONTACT_ID:
                return "vnd.android.cursor.item/contacts";
            default:
                throw new IllegalArgumentException("Unsupported URI: " + uri);
        }
    }

而且在调用getType方法时,是先执行语句case CONTACTS:
return "vnd.android.cursor.dir/contacts";,
再执行语句case CONTACT_ID:
return "vnd.android.cursor.item/contacts";

不是说执行了一个return,getType方法就结束了吗?怎么还执行下一个return?
二选一啊啊啊

case CONTACT_ID:
do??
return "vnd.android.cursor.item/contacts";是会走但只走return不走do??,也不会影响执行结果的

这个switch不是用break吗

图片说明