Intent-Filter - categoria

Top  Previous  Next

Este exemplo complementa o Intent-Filter - conceito básico.

Java

 

package com.tela2;

 

import android.app.Activity;

import android.os.Bundle;

 

public class Tela2Activity extends Activity {

  @Override

  public void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

       setContentView(R.layout.main);

   }

}

 

xml

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:orientation="vertical" >

 

  <TextView

      android:layout_width="fill_parent"

      android:layout_height="wrap_content"

      android:text="@string/hello" />

 

</LinearLayout>

 

Manifest

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

  package="com.tela2"

  android:versionCode="1"

  android:versionName="1.0" >

 

  <uses-sdk android:minSdkVersion="7" />

 

  <application

      android:icon="@drawable/ic_launcher"

      android:label="@string/app_name" >

      <activity

          android:name=".Tela2Activity"

          android:label="@string/app_name" >

          <intent-filter>

              <action android:name="ACAO_TESTE" />

              <category android:name="android.intent.category.DEFAULT" />

              <category android:name="CATEGORIA_TESTE" />

          </intent-filter>

      </activity>

  </application>

 

</manifest>

 


Modifique o Projeto 2 - Teste:

 
                 public void onClick(View arg0) {

                         Intent it;

                         it = new Intent("ACAO_TESTE");

                         it.addCategory("CATEGORIA_TESTE");

                         it.putExtra("mensagem", "uma mensagem a ser enviada");

                         startActivity(it);

                 }

 

Desta forma, ao pressionar o botão, só a Tela2 aparece.

Mas se você rodar sem esta linha (amarelo), o Android perguntará qual Activity deverá responder a "ACAO_TESTE":