หวังว่าใครบางคนสามารถช่วยฉันคิดออกถ้าไม่ได้แก้ปัญหาอย่างน้อยคำอธิบายสำหรับพฤติกรรม
ปัญหา:
ในอุปกรณ์บางตัวการกดไอคอนตัวเรียกใช้งานจะส่งผลให้งานปัจจุบันกลับมาทำงานต่อเมื่ออุปกรณ์ตัวอื่นส่งผลให้เกิดความตั้งใจในการเปิดตัวครั้งแรกที่เริ่มต้น ทำไมสิ่งนี้ถึงเกิดขึ้น
รายละเอียด:
เมื่อคุณกดปุ่ม "ไอคอนเปิด" แอปเริ่มทำงานตามปกติ - นั่นคือผมถือว่าเป็นเจตนาจะเปิดตัวที่มีชื่อของแรกของคุณActivity
ด้วยการกระทำและหมวดหมู่android.intent.action.MAIN
android.intent.category.LAUNCHER
อย่างไรก็ตามในกรณีนี้ไม่ได้:
สำหรับอุปกรณ์ส่วนใหญ่หากคุณกดไอคอนตัวเรียกใช้งานหลังจากแอปทำงานอยู่กิจกรรมที่กำลังทำงานอยู่ในกระบวนการนั้นจะกลับมาทำงานต่อ ( ไม่ใช่เริ่มต้นActivity
) มันดำเนินการต่อในลักษณะเดียวกับว่าคุณได้เลือกจาก "งานล่าสุด" ในเมนู OS นี่คือพฤติกรรมที่ฉันต้องการในทุกอุปกรณ์
อย่างไรก็ตามในอุปกรณ์อื่นที่เลือกมีพฤติกรรมที่แตกต่างกันเกิดขึ้น:
บน Motorola Xoom, เมื่อคุณกดไอคอนตัวที่ App จะเสมอเริ่มเปิดตัวครั้งแรก
Activity
โดยไม่คำนึงถึงสิ่งที่กำลังทำงาน ฉันคิดว่าไอคอนตัวเรียกใช้เริ่มต้นด้วยเจตนา "เปิดตัว"บน Samsung Tab 2 เมื่อคุณกดไอคอนตัวเรียกใช้งานถ้าคุณเพิ่งติดตั้งแอพมันจะเปิดตัวครั้งแรกเสมอ
Activity
(เหมือน Xoom) - อย่างไรก็ตามหลังจากคุณรีสตาร์ทอุปกรณ์หลังจากติดตั้งไอคอนตัวเรียกใช้จะแทน ดำเนินการแอปต่อ ฉันถือว่าอุปกรณ์เหล่านี้เพิ่ม "แอพที่ติดตั้ง" ลงในตารางการค้นหาเมื่อเริ่มต้นอุปกรณ์ซึ่งอนุญาตให้ไอคอนตัวเรียกใช้งานทำงานต่อได้อย่างถูกต้องหรือไม่
ฉันได้อ่านคำตอบหลายอย่างที่เสียงคล้ายกับปัญหาของฉัน แต่เพียงการเพิ่มandroid:alwaysRetainTaskState="true"
หรือใช้launchMode="singleTop"
ไปยังActivity
ไม่ได้คำตอบ
แก้ไข:
หลังจากการเปิดตัวแอพนี้ครั้งล่าสุดเราพบว่าพฤติกรรมนี้เริ่มเกิดขึ้นบนอุปกรณ์ทั้งหมดหลังจากการรีสตาร์ทครั้งแรก ซึ่งดูเหมือนจะบ้าสำหรับฉัน แต่เมื่อมองผ่านกระบวนการรีสตาร์ทฉันไม่พบสิ่งที่ผิดปกติ
finish()
พวกเขาในกรณีที่มันเริ่มครั้งแรกActivity
อีกครั้งแทนที่จะกลับมาทำงานต่อ