เจตนา
Android Intent เป็นวัตถุที่มีเจตนากล่าวคือข้อความจากส่วนประกอบหนึ่งไปยังส่วนประกอบอื่นไม่ว่าจะอยู่ภายในหรือภายนอกแอปพลิเคชัน Intent สามารถสื่อสารข้อความระหว่างองค์ประกอบหลักสามส่วนของแอปพลิเคชัน ได้แก่ กิจกรรมบริการและ BroadcastReceivers
เจตนาเองซึ่งเป็นวัตถุเจตนาเป็นโครงสร้างข้อมูลแบบพาสซีฟ มีคำอธิบายที่เป็นนามธรรมของการดำเนินการที่จะดำเนินการ
ตัวอย่างเช่นสมมติว่าคุณมีกิจกรรมที่ต้องเปิดโปรแกรมรับส่งอีเมลและส่งอีเมล ในการดำเนินการนี้กิจกรรมของคุณจะส่ง Intent พร้อมการดำเนินการACTION_SEND
พร้อมกับตัวเลือกที่เหมาะสมไปยัง Android Intent Resolver:
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:"));
ตัวเลือกที่ระบุจะให้อินเทอร์เฟซที่เหมาะสมสำหรับผู้ใช้ในการเลือกวิธีการส่งข้อมูลอีเมลของคุณ
ความตั้งใจที่ชัดเจน
// Explicit Intent by specifying its class name
Intent i = new Intent(this, TargetActivity.class);
i.putExtra("Key1", "ABC");
i.putExtra("Key2", "123");
// Starts TargetActivity
startActivity(i);
เจตนาโดยนัย
Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.example.com"));
startActivity(i);
ความตั้งใจที่รอดำเนินการ
PendingIntent คือโทเค็นที่คุณมอบให้กับแอปพลิเคชันต่างประเทศ (เช่น NotificationManager, AlarmManager, AppWidgetManager บนหน้าจอหลักหรือแอปพลิเคชันของบุคคลที่สามอื่น ๆ ) ซึ่งอนุญาตให้แอปพลิเคชันจากต่างประเทศใช้สิทธิ์ของแอปพลิเคชันของคุณเพื่อเรียกใช้โค้ดที่กำหนดไว้ล่วงหน้า
การให้ PendingIntent กับแอปพลิเคชันอื่นแสดงว่าคุณให้สิทธิ์ในการดำเนินการตามที่คุณระบุไว้ราวกับว่าแอปพลิเคชันอื่นเป็นตัวคุณเอง (ด้วยสิทธิ์และข้อมูลประจำตัวเดียวกัน) ด้วยเหตุนี้คุณควรระมัดระวังเกี่ยวกับวิธีการสร้าง PendingIntent: เกือบตลอดเวลาตัวอย่างเช่น Intent พื้นฐานที่คุณจัดหาควรมีการตั้งชื่อองค์ประกอบอย่างชัดเจนเป็นหนึ่งในองค์ประกอบของคุณเองเพื่อให้แน่ใจว่าจะถูกส่งไปที่นั่นในที่สุดและไม่มีที่อื่น
ตัวอย่างเจตนาที่รอดำเนินการ: http://android-pending-intent.blogspot.in/
ที่มา: Android IntentsและAndroid Pending Intents
หวังว่านี่จะช่วยได้