Pemberitahuan Android memberikan informasi singkat dan tepat waktu tentang tindakan yang terjadi di aplikasi, bahkan saat tidak berjalan sekalipun. Pemberitahuan menampilkan ikon, judul, dan beberapa jumlah teks konten. Properti pemberitahuan Android diatur menggunakan objek NotificationCompat.Builder dan masih banyak lagi seperti di bawah ini:
Membuat xml file baru dan menambahkan kode berikut kedalam layout. ini adalah kustom view yang akan diluncurkan ketika tombol pada activity pertama di klik. TextView digunakan untuk menampilkan judul dan pesan pemberitahuan.
File : activity_notifikasi_view.xml
Pada kelas MainActivity tambahkan kode berikut. Di sini, di mana kita terapkan objek NotificationCompat.Builder untuk mengatur properti pemberitahuan. Sedangkan Intent digunakan untuk memanggil aktivitas lain pada saat pemberitahuan diluncurkan.
File : MainActivity.java
Terakhir buat java kelas untuk menerima pesan pemberitahuan. Kelas ini dipanggil saat pemberitahuan diluncurkan.
File : NotifikasiView.java
Tambahkan kode berikut kedalam file AndroidManifest.xml.
File: String.xml
Hasilnya akan seperti ini:
- setContentTitle() ini digunakan untuk mengatur judul pemberitahuan.
- setContentText() ini digunakan untuk mengatur pesan teks.
- setSmallIcon() Ini digunakan untuk ikon pemberitahuan.
- setAutoCancel() untuk mengatur pemberitahuan agar dapat dibatalkan secara otomatis.
- setPriority() Ini untuk memprioritaskan pemberitahuan.
Dalam contoh ini, kita akan membuat pesan pemberitahuan yang akan meluncurkan aktivitas lain setelah mengkliknya.
Tambahkan kode xml berikut kedalam berkas /res/layout/main_activity.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="example.android.com.androidnotification.MainActivity"
android:orientation="vertical"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ANDROID NOTIFICATION"
android:gravity="center"
android:layout_marginBottom="10dp"
android:textSize="22sp"
android:textColor="#FF000000"
android:textStyle="bold"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:text="Notify"
android:layout_marginTop="10dp"/>
</LinearLayout>
Membuat xml file baru dan menambahkan kode berikut kedalam layout. ini adalah kustom view yang akan diluncurkan ketika tombol pada activity pertama di klik. TextView digunakan untuk menampilkan judul dan pesan pemberitahuan.
File : activity_notifikasi_view.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="64dp"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:gravity="center_vertical">
<ImageView
android:src="@drawable/ic_launcher"
android:id="@+id/image"
android:layout_width="46dp"
android:layout_height="46dp"
android:layout_centerVertical="true"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toRightOf="@+id/image"
android:gravity="center_vertical"
android:orientation="vertical"
android:paddingLeft="10dp">
<TextView
android:textSize="13dp"
android:textColor="#000"
android:text="Testing"
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image"
android:textStyle="bold"/>
<TextView
android:textSize="13dp"
android:textColor="#000"
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textView2"/>
</LinearLayout>
</RelativeLayout>
Pada kelas MainActivity tambahkan kode berikut. Di sini, di mana kita terapkan objek NotificationCompat.Builder untuk mengatur properti pemberitahuan. Sedangkan Intent digunakan untuk memanggil aktivitas lain pada saat pemberitahuan diluncurkan.
File : MainActivity.java
package com.my.apps;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.widget.RemoteViews;
import android.app.Notification;
import android.app.NotificationManager;
import android.support.v4.app.NotificationCompat;
import android.content.Intent;
import android.app.PendingIntent;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
notifikasi_contoh();
}
});
}
private void notifikasi_contoh() {
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher) //set icon untuk notifikasi
.setContentTitle("Judul") //set judul notifikasi
.setContentText("Ini contoh pesan notifikasi...")//ini pesan untuk notifikasi
.setAutoCancel(true) //auto cancel untuk notifikasi
.setPriority(NotificationCompat.PRIORITY_DEFAULT); //set prioritas untuk notifikasi
Intent notificationIntent = new Intent(this, NotifikasiView.class);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//pesan notifikasi akan menggunakan NotifikasiView
notificationIntent.putExtra("pesan", "Ini contoh pesan notifikasi...");
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(pendingIntent);
//tambahkan sebagai notifikasi
NotificationManager manager = (NotificationManager) getSystemService(MainActivity.NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
}
}
Terakhir buat java kelas untuk menerima pesan pemberitahuan. Kelas ini dipanggil saat pemberitahuan diluncurkan.
File : NotifikasiView.java
package com.my.apps;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class NotifikasiView extends Activity {
TextView texks1, texks2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notifikasi_view);
texks1 = findViewById(R.id.textView1);
texks2 = findViewById(R.id.textView2);
//Mengambil pesan notifikasi
String message1=getIntent().getStringExtra("judul");
texks1.setText(message1);
String message2=getIntent().getStringExtra("pesan");
texks2.setText(message2);
}
}
Tambahkan kode berikut kedalam file AndroidManifest.xml.
<?xml version='1.0' encoding='utf-8'?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.apps">
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:largeHeap="true"
android:name=".Applications"
android:resizeableActivity="true">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".NotifikasiView"
android:label="@string/notifikasi_activity"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"/>
</activity>
<activity
android:name=".DebugActivity"
android:screenOrientation="portrait"/>
<meta-data
android:name="android.max_aspect"
android:value="4.0"/>
</application>
</manifest>
File: String.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Happy Coding</string>
<string name="notifikasi_activity">NotifikasiView</string>
</resources>
Hasilnya akan seperti ini: