UriMatcher Classe

Definição

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

[Android.Runtime.Register("android/content/UriMatcher", DoNotGenerateAcw=true)]
public class UriMatcher : Java.Lang.Object
[<Android.Runtime.Register("android/content/UriMatcher", DoNotGenerateAcw=true)>]
type UriMatcher = class
    inherit Object
Herança
UriMatcher
Atributos

Comentários

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

Para usar essa classe, crie uma árvore de UriMatcher objetos. Por exemplo:

private static final int PEOPLE = 1;
                private static final int PEOPLE_ID = 2;
                private static final int PEOPLE_PHONES = 3;
                private static final int PEOPLE_PHONES_ID = 4;
                private static final int PEOPLE_CONTACTMETHODS = 7;
                private static final int PEOPLE_CONTACTMETHODS_ID = 8;

                private static final int DELETED_PEOPLE = 20;

                private static final int PHONES = 9;
                private static final int PHONES_ID = 10;
                private static final int PHONES_FILTER = 14;

                private static final int CONTACTMETHODS = 18;
                private static final int CONTACTMETHODS_ID = 19;

                private static final int CALLS = 11;
                private static final int CALLS_ID = 12;
                private static final int CALLS_FILTER = 15;

                private static final UriMatcher sURIMatcher = new UriMatcher(UriMatcher.NO_MATCH);

                static
                {
                    sURIMatcher.addURI("contacts", "people", PEOPLE);
                    sURIMatcher.addURI("contacts", "people/#", PEOPLE_ID);
                    sURIMatcher.addURI("contacts", "people/#/phones", PEOPLE_PHONES);
                    sURIMatcher.addURI("contacts", "people/#/phones/#", PEOPLE_PHONES_ID);
                    sURIMatcher.addURI("contacts", "people/#/contact_methods", PEOPLE_CONTACTMETHODS);
                    sURIMatcher.addURI("contacts", "people/#/contact_methods/#", PEOPLE_CONTACTMETHODS_ID);
                    sURIMatcher.addURI("contacts", "deleted_people", DELETED_PEOPLE);
                    sURIMatcher.addURI("contacts", "phones", PHONES);
                    sURIMatcher.addURI("contacts", "phones/filter/*", PHONES_FILTER);
                    sURIMatcher.addURI("contacts", "phones/#", PHONES_ID);
                    sURIMatcher.addURI("contacts", "contact_methods", CONTACTMETHODS);
                    sURIMatcher.addURI("contacts", "contact_methods/#", CONTACTMETHODS_ID);
                    sURIMatcher.addURI("call_log", "calls", CALLS);
                    sURIMatcher.addURI("call_log", "calls/filter/*", CALLS_FILTER);
                    sURIMatcher.addURI("call_log", "calls/#", CALLS_ID);
                }

A partir do nível android.os.Build.VERSION_CODES#JELLY_BEAN_MR2da API, os caminhos podem começar com uma barra à esquerda. Por exemplo:

sURIMatcher.addURI("contacts", "/people", PEOPLE);

Em seguida, quando você precisar corresponder a um URI, chame #match, fornecendo a URL que você recebeu. Você pode usar o resultado para criar uma consulta, retornar um tipo, inserir ou excluir uma linha ou o que precisar, sem duplicar toda a lógica if-else que você precisaria de outra forma. Por exemplo:

public String getType(Uri url)
                {
                    int match = sURIMatcher.match(url);
                    switch (match)
                    {
                        case PEOPLE:
                            return "vnd.android.cursor.dir/person";
                        case PEOPLE_ID:
                            return "vnd.android.cursor.item/person";
            ... snip ...
                            return "vnd.android.cursor.dir/snail-mail";
                        case PEOPLE_ADDRESS_ID:
                            return "vnd.android.cursor.item/snail-mail";
                        default:
                            return null;
                    }
                }

Em vez de:

public String getType(Uri url)
                {
                    List<String> pathSegments = url.getPathSegments();
                    if (pathSegments.size() >= 2) {
                        if ("people".equals(pathSegments.get(1))) {
                            if (pathSegments.size() == 2) {
                                return "vnd.android.cursor.dir/person";
                            } else if (pathSegments.size() == 3) {
                                return "vnd.android.cursor.item/person";
            ... snip ...
                                return "vnd.android.cursor.dir/snail-mail";
                            } else if (pathSegments.size() == 3) {
                                return "vnd.android.cursor.item/snail-mail";
                            }
                        }
                    }
                    return null;
                }

Java documentação para android.content.UriMatcher.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Construtores

Nome Description
UriMatcher(Int32)

Cria o nó raiz da árvore de URI.

UriMatcher(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime.

Campos

Nome Description
NoMatch

Propriedades

Nome Description
Class

Retorna a classe de runtime deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
JniPeerMembers

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

PeerReference

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
ThresholdClass

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Nome Description
AddURI(String, String, Int32)

Adicione um URI para corresponder e o código a ser retornado quando esse URI for correspondido.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Dispose()

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
Dispose(Boolean)

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Match(Uri)

Tente corresponder ao caminho em uma URL.

Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
ToArray<T>()

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
IJavaPeerable.Finalized()

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

(Herdado de Object)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo marcada por runtime do Android.

JavaCast<TResult>(IJavaObject)

Classe de utilitário para auxiliar na correspondência de URIs em provedores de conteúdo.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a