ตัวอย่างนี้สาธิตวิธีรับการแจ้งเตือน Android เมื่อปิดแอป
ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่
ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml
<ก่อน> เวอร์ชัน xml ="1.0" การเข้ารหัส ="utf-8" ?>ขั้นตอนที่ 3 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity
แพ็คเกจ app.tutorialspoint.com.notifyme;นำเข้า android.content.Intent;นำเข้า android.os.Bundle;นำเข้า android.support.v7.app.AppCompatActivity;นำเข้า android.view.View;คลาสสาธารณะ MainActivity ขยาย AppCompatActivity { @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super .onCreate (savedInstanceState); setContentView(R.layout. activity_main ); } @Override ป้องกันโมฆะ onStop () { super .onStop(); startService( เจตนาใหม่ ( นี่ คลาส NotificationService )); } โมฆะสาธารณะ closeApp (ดูมุมมอง) { เสร็จสิ้น (); }}
ขั้นตอนที่ 4 − เพิ่มรหัสต่อไปนี้ใน src/NotificationService
แพ็คเกจ app.tutorialspoint.com.notifyme;นำเข้า android.app.NotificationChannel;นำเข้า android.app.NotificationManager;นำเข้า android.app.Service;นำเข้า android.content.Intent;นำเข้า android.os.Handler;นำเข้า android os.IBinder;import android.support.v4.app.NotificationCompat;import android.util.Log;import java.util.Timer;import java.util.TimerTask;คลาสสาธารณะ NotificationService ขยายบริการ { สตริงสุดท้ายแบบคงที่สาธารณะ NOTIFICATION_CHANNEL_ID ="10001 "; สตริงคงที่ส่วนตัวสุดท้าย default_notification_channel_id ="default"; ตัวตั้งเวลา; TimerTask timerTask; String TAG ="ตัวจับเวลา"; int Your_X_SECS =5; @ แทนที่ IBinder สาธารณะ onBind (เจตนา arg0) { คืนค่า null; } @Override สาธารณะ int onStartCommand (เจตนาเจตนา , แฟล็ก int , int startId) { บันทึก e ( TAG , "onStartCommand" ); super .onStartCommand(intent , flags , startId); startTimer(); ส่งคืน START_STICKY; } @Override โมฆะสาธารณะ onCreate () { บันทึก e ( TAG , "onCreate" ); } @Override โมฆะสาธารณะ onDestroy () { บันทึก e ( TAG , "onDestroy" ); stopTimerTask(); สุดยอด .onDestroy(); } //เราจะใช้ตัวจัดการเพื่อให้สามารถทำงานในตัวจัดการตัวจัดการสุดท้าย TimerTask ของเรา =new Handler(); โมฆะสาธารณะ startTimer () { ตัวจับเวลา =ตัวจับเวลาใหม่ (); initializeTimerTask(); ตัวจับเวลา .schedule ( timerTask , 5000 , Your_X_SECS * 1000 ); // } โมฆะสาธารณะ stopTimerTask () { if ( timer !=null ) { timer .cancel (); ตัวจับเวลา =null; } } โมฆะสาธารณะ initializeTimerTask () { timerTask =ใหม่ TimerTask () { โมฆะสาธารณะ () { ตัวจัดการ .โพสต์ ( รันใหม่ได้ () { โมฆะสาธารณะ () { createNotification (); } }); } }; } โมฆะส่วนตัว createNotification () { NotificationManager mNotificationManager =(NotificationManager) getSystemService ( NOTIFICATION_SERVICE ); NotificationCompat.Builder mBuilder =ใหม่ NotificationCompat.Builder(getApplicationContext() , default_notification_channel_id ); mBuilder.setContentTitle( "การแจ้งเตือนของฉัน" ); mBuilder.setContentText( "ตัวอย่างบริการผู้ฟังการแจ้งเตือน" ); mBuilder.setTicker( "ตัวอย่างบริการฟังการแจ้งเตือน" ); mBuilder.setSmallIcon(R.drawable. ic_launcher_foreground ); mBuilder.setAutoCancel( จริง ); if (android.os.Build.VERSION. SDK_INT>=android.os.Build.VERSION_CODES. O ) { ความสำคัญจริง =NotificationManager IMPORTANCE_HIGH; NotificationChannel alertChannel =new NotificationChannel( NOTIFICATION_CHANNEL_ID , "NOTIFICATION_CHANNEL_NAME" , ความสำคัญ); mBuilder.setChannelId ( NOTIFICATION_CHANNEL_ID ); ยืนยัน mNotificationManager !=null; mNotificationManager.createNotificationChannel (ช่องแจ้งเตือน); } ยืนยัน mNotificationManager !=null; mNotificationManager.notify(( int ) ระบบ currentTimeMillis () , mBuilder.build()); }}
ขั้นตอนที่ 5 − เพิ่มรหัสต่อไปนี้ใน AndroidManifest.xml
<ก่อน> เวอร์ชัน xml ="1.0" การเข้ารหัส ="utf-8" ?><แสดง xmlns:android ="https://schema.android.com/apk/res/android" package ="app.tutorialspoint.com.notifyme">มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์แล้วคลิกไอคอน Run จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก แล้วตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ -