1

我是安卓新手。我浏览了Android的代码,ContentProvider我有点困惑,因为静态UriMatcher中的语句将首先执行。这里的代码里面有一个静态块,但不知道. 它如何使用它,因为在初始化之前静态块应该运行。UriMatcherPROVIDER_NAMEPROVIDER_NAME

public class CustomContentProvider extends ContentProvider {

    public static final String PROVIDER_NAME = 
        "net.learn2develop.provider.Book";

     public static final Uri CONTENT_URI = 
        Uri.parse("content://"+ PROVIDER_NAME + "/books");

     public static final String _ID = "_id";
     public static final String TITLE = "title";
     public static final String ISBN = "isbn";

     private static final int BOOKS = 1;
     private static final int BOOK_ID = 2;   

     private static final UriMatcher uriMatcher;
     static {
        uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
        uriMatcher.addURI(PROVIDER_NAME, "books", BOOKS);
        uriMatcher.addURI(PROVIDER_NAME, "books/#", BOOK_ID);      
     }

任何帮助都会被极大地接受......在此先感谢

4

1 回答 1

1

静态初始化代码按文本顺序运行。这包括静态字段以及静态块。

PROVIDER_NAME因此在静态块执行时已经初始化

于 2012-01-31T04:50:57.993 回答