4

这是比较正确的方法Intents吗?Intent无论传入的是android.Intent.action.VIEW(intent.getAction() 返回的值),我都不会进入 if/else :

    private void handleIntent(Intent intent) {
Log.d(TAG, intent.getAction()); // -> android.Intent.action.VIEW
            if (Intent.ACTION_VIEW.equals(intent.getAction())) {
                ShowToast.showToast(this, "Something..."); // Never get here
            } else if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
                String query = intent.getStringExtra(SearchManager.QUERY);
                showResults(query);
            }
        }

更新:为什么intent.getAction()返回android.Intent.action.VIEW(大写“i”)应该android.intent.action.VIEW按照规范返回?

4

1 回答 1

2

我找到了大写“i”的来源。只要我使用的是SearchView我自己指定Intentnew 时要使用的内容Activity,所以我在这里犯了一个错误:

<searchable xmlns:android="http://schemas.android.com/apk/res/android"
            android:label="@string/appname"
            android:hint="@string/search_hint"
            android:searchSuggestAuthority="my.package.dataproviders.TicketSuggestionProvider"
            android:searchSuggestIntentData="content://my.package.dataproviders.TicketSuggestionProvider/titleslist"
            android:searchSuggestIntentAction="android.Intent.action.VIEW" // HERE IT IS
            android:searchSuggestSelection=" ?">
</searchable>
于 2012-09-05T10:17:38.567 回答