ContentProvider 的 query(..) 方法从未被调用,因此我没有得到任何建议

ContentProvider's query(..) method is never called ,due to which i am getting no suggestions

我已经使用 SQLiteDataBase 创建了一个带有自定义建议的 searchView,但是从未调用过 query() 方法,因此它没有显示任何建议。 我的 ContentProvider

的代码
package com.example.abhishek.fblogin.helper;

public class HostelContentProvider extends ContentProvider {

    private DataBaseHandler handler;
    private SQLiteDatabase db;

    UriMatcher mUriMatcher = buildUriMatcher();
    private static String AUTHORITY="com.example.abhishek.fblogin.helper.HostelContentProvider";
    public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/pg" );
    private final int SUGGESTIONS=0;


    private UriMatcher buildUriMatcher(){
        UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);

        // Suggestion items of Search Dialog is provided by this uri
        uriMatcher.addURI(AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY,SUGGESTIONS);
        return uriMatcher;
    }

    @Override
    public boolean onCreate() {
        handler = new DataBaseHandler(getContext());
        db = handler.getWritableDatabase();
        return true;
    }

    @Nullable
    @Override
    public String getType(Uri uri) {
        return null;
    }

    @Nullable
    @Override
    public Uri insert(Uri uri, ContentValues values) {
        return null;
    }

    @Override
    public int delete(Uri uri, String selection, String[] selectionArgs) {
        return 0;
    }

    @Override
    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
        return 0;
    }

    private static final HashMap<String, String> PROJECTION_MAP = new HashMap<String, String>();

    static {
        PROJECTION_MAP.put("_id", "_id");
        PROJECTION_MAP.put(SearchManager.SUGGEST_COLUMN_TEXT_1,
                "name AS " + SearchManager.SUGGEST_COLUMN_TEXT_1);
        PROJECTION_MAP.put(SearchManager.SUGGEST_COLUMN_INTENT_DATA,"_id AS "+SearchManager.SUGGEST_COLUMN_INTENT_DATA);
    }

    @Override
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
        SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
        builder.setTables("pg_table");
        switch (mUriMatcher.match(uri)) {
            case SUGGESTIONS:
                String query = uri.getLastPathSegment();
                if (query.equals("")) {
                    return null;
                }
                builder.appendWhere("INSTR(UPPER(name),UPPER('" + query + "'))");
                builder.setProjectionMap(PROJECTION_MAP);
                break;
        }
    return builder.query(db,projection,null,null,null,null,null);
    }
    }`

我的清单代码是:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.abhishek.fblogin">

<uses-permission android:name="android.permission.INTERNET" />
<application
    android:name=".helper.AppController"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/app_id" />

    <activity
        android:name=".Activity.MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Activity.SearchableActivity"
        android:label="@string/title_activity_searchable"
        android:launchMode="singleTop"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>

        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />
    </activity>

    <activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    <activity
        android:name=".Activity.LoginActivity"
        android:label="@string/title_activity_login"
        android:theme="@style/AppTheme.NoActionBar" />
    <activity
        android:name=".Activity.ExplorePGActivity"
        android:label="@string/title_activity_explore_pg"
        android:theme="@style/AppTheme.NoActionBar">
        <meta-data
            android:name="android.app.default_searchable"
            android:value=".SearchableActivity" />
    </activity>
    <activity
        android:name=".Activity.MyProfileActivity"
        android:label="@string/title_activity_my_profile"
        android:theme="@style/AppTheme.NoActionBar"></activity>
</application>
<provider
    android:name=".helper.HostelContentProvider"
    android:authorities="com.example.abhishek.fblogin.helper.HostelContentProvider"
    android:exported="true"/>

确保您已将 searchable.xml 文件中的 android:searchSuggestAuthority 值设置为与清单文件中 provider 元素中的 android:authorities 值完全相同