1

私はAndroidが初めてです。私は Android のコードを調べましたが、 static内のステートメントが最初に実行されるため、ContentProvider少し混乱しています。ここのコード内には、についての知識のない静的ブロックがあります。初期化前に静的ブロックを実行する必要があるため、どのように使用できますか。UriMatcherUriMatcherPROVIDER_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 に答える