Android “不推荐”的合适替代者是什么;managedQuery";?

Android “不推荐”的合适替代者是什么;managedQuery";?,android,android-contentprovider,Android,Android Contentprovider,Android文档说:这个方法在API级别11中被弃用 这是代码: class GridViewActivity_ extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gridview); Gri

Android文档说:这个方法在API级别11中被弃用

这是代码:

class GridViewActivity_ extends     Activity
  {
    @Override
    protected void onCreate(Bundle  savedInstanceState)
    {
        super.onCreate(savedInstanceState);
    setContentView(R.layout.gridview);

    GridView gv = (GridView)findViewById(R.id.gridview);

    Cursor c = managedQuery(Contacts.CONTENT_URI, 
            null, null, null, Contacts.DISPLAY_NAME);

    String[] cols = new String[]{Contacts.DISPLAY_NAME};
    int[]   views = new int[]   {android.R.id.text1};

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
            android.R.layout.simple_list_item_1,
            c, cols, views);
    gv.setAdapter(adapter);
}
 }
如何替换此代码,而不是弃用的代码

对于活动,而不是片段…

您可以看到以下链接:

根据这一伟大的理论:

公共类GridViewActivity扩展FragmentActivity实现LoaderManager.LoaderCallbacks
{
私人简易程序或适应程序;
@凌驾
公共加载器onCreateLoader(int p1,Bundle p2)
{
返回新的游标加载程序(这个,Contacts.CONTENT\u URI,null,null,Contacts.DISPLAY\u NAME);
}
@凌驾
公共void onLoadFinished(加载器p1,光标)
{
mAdapter.swapCursor(光标);
}
@凌驾
公共void onLoaderReset(加载器光标)
{
mAdapter.swapCursor(空);
}
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
//TODO:实现此方法
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview);
GridView gv=(GridView)findViewById(R.id.GridView);
字符串[]cols=新字符串[]{Contacts.DISPLAY_NAME};
int[]views=newint[]{android.R.id.text1};
mAdapter=new SimpleCursorAdapter(这个,android.R.layout.simple\u list\u item\u 1,null,cols,views,0);
gv.设置适配器(mAdapter);
getSupportLoaderManager().initLoader(0,null,this);
}
}

光标加载器只是需要注意的一件事。这需要4个参数,managedQuery只需要3个。我忽略了其中一个空的!getSupportLoaderManager似乎也不推荐使用(IDE这么说)。怎么会?应该用什么来代替?
Cursor cursor = getContentResolver().query(contentUri, null, null, null, Contacts.DISPLAY_NAME);
public class GridViewActivity extends FragmentActivity implements LoaderManager.LoaderCallbacks<Cursor>
{
    private SimpleCursorAdapter mAdapter;

    @Override
public Loader<Cursor> onCreateLoader(int p1, Bundle p2)
{
    return new CursorLoader(this, Contacts.CONTENT_URI, null, null, null, Contacts.DISPLAY_NAME);
}

@Override
public void onLoadFinished(Loader<Cursor> p1, Cursor cursor)
{
    mAdapter.swapCursor(cursor);
}

@Override
public void onLoaderReset(Loader<Cursor> cursor)
{
    mAdapter.swapCursor(null);
}


@Override
protected void onCreate(Bundle savedInstanceState)
{
    // TODO: Implement this method
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gridview);      
    GridView gv = (GridView)findViewById(R.id.gridview);
    String[] cols = new String[]{Contacts.DISPLAY_NAME};
    int[] views = new int[]{android.R.id.text1};
    mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, null, cols,views, 0);
    gv.setAdapter(mAdapter);
    getSupportLoaderManager().initLoader(0, null, this);
}

}