Notification - um exemplo

Top  Previous  Next

Tela

 

Tela que cria a notificação ao pressionar botão:

Notificação:

Ao clicar na notificação abre essa activity:

NotificandoWorldActivity.java

 

package com.notificando;

 

import android.app.Activity;

import android.app.Notification;

import android.app.NotificationManager;

import android.app.PendingIntent;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

 

public class NotificandoWorldActivity extends Activity implements OnClickListener {

  @Override

  public void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

       setContentView(R.layout.main);

       

       Button button1 = (Button) findViewById(R.id.button1);

       button1.setOnClickListener(this);

   }

 

 public void onClick(View arg0) {

         

         // barra de status

         String tickerText = "Você recebeu uma mensagem";

         // detalhes

         CharSequence titulo = "Atenção";

         CharSequence mensagem = "Você recebeu uma mensagem do papa";

         // ---------------- cria notificação

         // pega o servico

         NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

         Notification note = new Notification(R.drawable.chat, tickerText, System.currentTimeMillis());

         // vamos criar uma intent que será usada para abrir um activity quando usuario clicar na mensagem

         Intent it = new Intent(this, TelaChamadaPelaNotificacao.class);

         it.putExtra("mensagem", "Essa mensagem é da notificação");

         // PendingIntent é "vinculada" a uma notification para abrir a intent

         PendingIntent p = PendingIntent.getActivity(this, 0, it, 0);

         // informações

         note.setLatestEventInfo(this, titulo, mensagem, p);

         // vibrar espera 100ms, vibra por 250ms, espera 100ms e vibra por 500ms

         note.vibrate = new long[] { 100, 250, 100, 500 };

         // id - numero unico que irá identificar

         nm.notify(99, note);

 }

}

 

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" >

 

  <Button

      android:id="@+id/button1"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:text="Notificar" />

 

</LinearLayout>

 

TelaChamadaPelaNotificacao.java

 

package com.notificando;

 

import android.app.Activity;

import android.app.NotificationManager;

import android.content.Intent;

import android.os.Bundle;

import android.widget.TextView;

 

public class TelaChamadaPelaNotificacao extends Activity {

 

 @Override

 protected void onCreate(Bundle savedInstanceState) {

         super.onCreate(savedInstanceState);

         setContentView(R.layout.janela);

         

         // pega a mensagem que veio pela Intent --- opcional

         Intent it = getIntent();

         TextView textView2 = (TextView)findViewById(R.id.textView2);

         textView2.setText(it.getStringExtra("mensagem"));

         

         // cancela a notificacao - caso contrário ela fica pra sempre

         NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

         // para cancelar é necessário o MESMO ID

         nm.cancel(99);

 }

}

 

janela.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:id="@+id/textView1"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:text="Oie!"

      android:textAppearance="?android:attr/textAppearanceLarge" />

 

  <TextView

      android:id="@+id/textView2"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:text="Medium Text"

      android:textAppearance="?android:attr/textAppearanceMedium" />

 

</LinearLayout>

 

Manifest

 

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

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

  package="com.notificando"

  android:versionCode="1"

  android:versionName="1.0" >

 

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

  <uses-permission android:name="android.permission.VIBRATE"/>

 

  <application

      android:icon="@drawable/ic_launcher"

      android:label="@string/app_name" >

      <activity android:name=".TelaChamadaPelaNotificacao" />

       

      <activity

          android:name=".NotificandoWorldActivity"

          android:label="@string/app_name" >

          <intent-filter>

              <action android:name="android.intent.action.MAIN" />

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

          </intent-filter>

      </activity>

  </application>

 

</manifest>