在单独的类中的getContentResolver

时间:2013-08-17 14:49:47

标签: java android android-contentresolver

我需要一个课程来获取设备上的艺术家,专辑和曲目,然后我将使用JNI进行调用。

目前,在其准系统中,以下情况会导致崩溃。

public class AndroidMediaLibray extends Activity {
    public void getArtists() {
        getContentResolver();
    }
}

如何让它不崩溃?

1 个答案:

答案 0 :(得分:0)

您遇到的问题是,您需要在getContentResolver()上致电Context。如果您在Activity中拨打电话,则会自动在Context的{​​{1}}上拨打该电话。但是你(可能)从未真正开始Activity。请参阅documentation of activities。如果要在额外的类中调用DB,可以查看以下代码。我用静态方法创建了一个类。我只需要将给定AndroidMediaLibrary的上下文传递给该类。在您的情况下,该类可能如下所示:

Activity

您可以通过以下方式从MainActivity调用该功能:

public class AndroidMediaLibrary {

    public static List<String> getArtists(Context context){

        ArrayList<String> retVal = new ArrayList<String>();

        ContentResolver resolver = context.getContentResolver();        

        // some more stuff here.. 

        return retVal;
    }
}