Android : How to check last activity before quit by onBackpressed()

ปกติ Android Smartphone จะมีปุ่ม Back บนเครื่อง ซึ่งปุ่ม Back นี้เมื่อกดแล้วจะทำการเรียกฟังก์ชัน onBackpressed() ของแอปปลิเคชันที่ทำงานอยู่ ถ้าต้องการให้มีการทำงานเมื่อมีการกดปุ่ม Back บน Smartphone เราสามารถเรียกใช้ฟังก์ชัน onBackpressed() ได้ดังนี้

@Override
public void onBackPressed() {

 // ... whatever code you want to do ... //

super.onBackPressed();
}

คราวนี้ในแต่ละแอปปลิเคชันถ้าเกิดมีหลายๆ Activity เช่น

Main Activity -> Activity A -> Activity B -> Activity C สมมติเราอยู่ที่ Activity C เมื่อกดปุ่ม Back แอปฯจะกลับมาที่ Activity B กดอีกครั้งกลับมาที่ Activity A กดอีกครั้งก็กลับมาที่ Main Activity

และตรงนี้ถ้ากดอีกทีก็จะออกจากโปรแกรมเลย นั่นคือ Last Activity แล้ว ซึ่งเรามีวิธีการเช็คได้ว่าตอนนี้เป็น Last Activity หรือยังดังนี้

@Override
public void onBackPressed() {

// Check for last activity it'll quit when BYPASSMAIN=true
ActivityManager mngr = (ActivityManager) getSystemService( ACTIVITY_SERVICE );
List<ActivityManager.RunningTaskInfo> taskList = mngr.getRunningTasks(10);

if(isTaskRoot()){
//... it's last activity do something
} else {
//... it's not last activity do another thing
}
super.onBackPressed();
}

ตามโค้ดข้างต้นว่าอยากจะทำอะไรต่อก็ตามใจครับ

You may also like...