2014-02-10 10 views
5

Ich lese Absicht & Absicht Filter. Ich habe den Code unten:kann Absicht Filter nicht verstehen

In Aktivität:

Intent i = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://www.example.com")); 
startActivity(i); 

In Manifest:

<activity android:name="com.example.intentdemo.CustomActivity" 
     android:label="@string/app_name">    
    <intent-filter>    
    <action android:name="android.intent.action.VIEW" /> 
    <action android:name="com.example.intentdemo.LAUNCH" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:scheme="http" />    
    </intent-filter>   
</activity> 

Meine Frage ist, dass- soll ich nicht android.Intent erklären. ACTION_VIEW, anstelle von android.content.Intent.ACTION_VIEW innerhalb der Absicht?

+0

Ich war Antwort für Ihre HTTP Frage schreiben, warum Sie es gelöscht? – user3301551

Antwort

1

android.content.Intent.ACTION_VIEW bezieht sich auf den Namen der Konstante ACTION_VIEW in der Klasse android.content.Intent. Der Wert dieser Konstante ist "android.intent.action.VIEW". Daher der Unterschied.

+0

Und wir können hinzufügen, dass es sicher ein wenig verwirrend war, die ersten Intent-Klassen des Android-Systems so zu benennen. – Snicolas

0

Wenn Sie den Quellcode der Intent-Klasse, ACTION_VIEW ist ein String Konstante, deren Wert "android.intent.action.VIEW" ...

public static final String ACTION_VIEW = "android.intent.action.VIEW"; 

so bezieht sich sowohl auf den gleichen Wert, die "android.intent.action.VIEW" ist ...

0

Sie werden in android.intent.action.VIEW und android.Intent.ACTION_VIEW verwirrt. Sie sind beide total verschieden.

Die Art und Weise, die Sie verwenden, ist IMPLIZIT INTENT

Diese Absichten blieb nicht ein Ziel und das Feld für die Komponentennamen leer nennen. Implizite Absichten werden oft verwendet, um Komponenten in anderen Anwendungen zu aktivieren.

Intent i = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://www.example.com")); 
startActivity(i); 

ACTION

Intent Objekt und ist eine Zeichenfolge, die die Aktion der Benennung durchgeführt werden - oder, im Fall von Broadcast-Absichten, die Aktion, die stattfand, und berichtet wird. Die Aktion bestimmt weitgehend, wie der Rest des Intent-Objekts strukturiert ist. Die Intent-Klasse definiert eine Anzahl von Aktionskonstanten, die verschiedenen Absichten entsprechen. Ausgehende Liste der Android Intent Standard Actions

Die Aktion in einem Intent-Objekt kann mit der Methode setAction() festgelegt und von getAction() gelesen werden.

Check More for Intent and Intent-Filter

Verwandte Themen