Loader函数在返回Uri值时显示错误

时间:2018-03-13 13:32:36

标签: android android-loader

装载程序功能

@Override
public android.support.v4.content.Loader<Uri> onCreateLoader(int id, Bundle args) {

    DbLoader abc=new DbLoader(this,uri,values);

    return abc;
}

DbLoader功能

public class DbLoader extends AsyncTaskLoader<Uri> {
Context context;
Uri uri;
ContentValues values;
public DbLoader(Context context, Uri uri, ContentValues values) {
    super(context);
    this.context=context;
    this.uri=uri;
    this.values=values;
}

@Override
public Uri loadInBackground() {
    Log.e("TAG","thread running");
  Uri  uriTemp=context.getContentResolver().insert(uri,values);
    return uriTemp;
}
}

我收到错误,我正在返回错误的返回类型的数据。 我在处理从互联网加载数据的同时使用String做了同样的工作,当时工作正常。 如何删除此错误?

确切的错误消息是

Incompatible types.
Required:
android.support.v4.content.Loader
<android.net.Uri>
Found:
com.example.asus.test_table.DbLoader

1 个答案:

答案 0 :(得分:0)

您似乎使用了错误的AsyncTaskLoader。你想要

import android.support.v4.content.AsyncTaskLoader;而不是

import android.content.AsyncTaskLoader;。前者扩展android.support.v4.content.Loader,后者不扩展。