คำถามติดแท็ก foreground

30
วิธีการตรวจสอบเมื่อแอพ Android ไปที่พื้นหลังและกลับมาที่พื้นหน้า
ฉันกำลังพยายามเขียนแอพที่ทำสิ่งที่เฉพาะเจาะจงเมื่อมันถูกนำกลับไปที่ส่วนหน้าหลังจากเวลาผ่านไประยะหนึ่ง มีวิธีการตรวจสอบหรือไม่เมื่อแอพถูกส่งไปที่พื้นหลังหรือถูกนำไปที่ฉากหน้า?

26
Context.startForegroundService () ไม่ได้เรียก Service.startForeground ()
ฉันใช้Serviceคลาสบนระบบปฏิบัติการ Android O ฉันวางแผนที่จะใช้Serviceในพื้นหลัง Android เอกสารระบุว่า หากแอปของคุณกำหนดเป้าหมาย API ระดับ 26 ขึ้นไประบบจะกำหนดข้อ จำกัด ในการใช้หรือสร้างบริการพื้นหลังยกเว้นว่าแอพนั้นอยู่ในเบื้องหน้า หากแอปต้องการที่จะสร้างบริการเบื้องหน้า, app startForegroundService()ควรจะเรียก ถ้าคุณใช้startForegroundService()การServiceโยนข้อผิดพลาดดังต่อไปนี้ Context.startForegroundService() did not then call Service.startForeground() เกิดอะไรขึ้นกับสิ่งนี้?

5
ฉันจะอัปเดตข้อความแจ้งเตือนสำหรับบริการเบื้องหน้าใน Android ได้อย่างไร
ฉันมีการตั้งค่าบริการเบื้องหน้าใน Android ฉันต้องการอัปเดตข้อความแจ้งเตือน ฉันกำลังสร้างบริการดังที่แสดงด้านล่าง ฉันจะอัปเดตข้อความแจ้งเตือนที่ตั้งค่าไว้ในบริการส่วนหน้านี้ได้อย่างไร แนวทางปฏิบัติที่ดีที่สุดในการอัปเดตการแจ้งเตือนคืออะไร โค้ดตัวอย่างใด ๆ จะได้รับการชื่นชม public class NotificationService extends Service { private static final int ONGOING_NOTIFICATION = 1; private Notification notification; @Override public void onCreate() { super.onCreate(); this.notification = new Notification(R.drawable.statusbar, getText(R.string.app_name), System.currentTimeMillis()); Intent notificationIntent = new Intent(this, AbList.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); …

14
จะ startForeground () โดยไม่แสดงการแจ้งเตือนได้อย่างไร?
ฉันต้องการสร้างบริการและให้มันทำงานในส่วนหน้า โค้ดตัวอย่างส่วนใหญ่มีการแจ้งเตือนอยู่ แต่ฉันไม่ต้องการแสดงการแจ้งเตือนใด ๆ เป็นไปได้หรือไม่ ช่วยยกตัวอย่างหน่อยได้ไหม มีทางเลือกอื่นหรือไม่? บริการแอพของฉันกำลังทำมีเดียเพลเยอร์ วิธีทำให้ระบบไม่ฆ่าบริการของฉันยกเว้นแอพจะฆ่ามันเอง (เช่นหยุดชั่วคราวหรือหยุดเพลงทีละปุ่ม)

2
บริการเบื้องหน้าถูกฆ่าโดย Android
อัปเดต :ฉันไม่พบวิธีแก้ปัญหาที่แท้จริง สิ่งที่ฉันได้เกิดขึ้นคือวิธีการเชื่อมต่อกับอุปกรณ์บลูทู ธ ก่อนหน้าโดยอัตโนมัติทุกครั้งที่การเชื่อมต่อขาดหายไป มันไม่เหมาะ แต่ดูเหมือนว่าจะทำงานได้ดีพอสมควร ฉันชอบที่จะได้ยินคำแนะนำเพิ่มเติมเกี่ยวกับเรื่องนี้ ฉันมีปัญหาเดียวกันกับในคำถามนี้: บริการถูกฆ่าในขณะที่กด Wake Lock และหลังจากเรียก startForegroundรวมถึงอุปกรณ์ (Asus Transformer) ระยะเวลาก่อนหยุดให้บริการ (30-45 นาที) การใช้งาน ล็อคการปลุกการใช้ startForeground () และความจริงที่ว่าปัญหาจะไม่เกิดขึ้นหากแอปเปิดอยู่เมื่อหน้าจอดับลง แอปของฉันรักษาการเชื่อมต่อบลูทู ธ กับอุปกรณ์อื่นและส่งข้อมูลระหว่างทั้งสองดังนั้นจึงต้องเปิดใช้งานตลอดเวลาเพื่อฟังข้อมูล ผู้ใช้สามารถเริ่มและหยุดบริการได้ตามต้องการและในความเป็นจริงนี่เป็นวิธีเดียวที่ฉันได้ดำเนินการเพื่อเริ่มหรือหยุดบริการ เมื่อบริการรีสตาร์ทการเชื่อมต่อบลูทู ธ กับอุปกรณ์อื่นจะขาดหายไป ตามคำตอบในคำถามที่เชื่อมโยง startForeground () "ลดโอกาสที่บริการจะถูกฆ่า แต่ไม่ได้ป้องกัน" ฉันเข้าใจว่าเป็นเช่นนั้นอย่างไรก็ตามฉันได้เห็นตัวอย่างของแอพอื่น ๆ ที่ไม่มีปัญหานี้ (เช่นทาซเคอร์) ประโยชน์ของแอปของฉันจะลดลงอย่างมากหากไม่มีความสามารถในการให้บริการจนกว่าผู้ใช้จะหยุดทำงาน มีวิธีใดบ้างที่จะหลีกเลี่ยงสิ่งนี้ ??? ฉันเห็นสิ่งนี้ในบันทึกของฉันเมื่อใดก็ตามที่บริการหยุด: ActivityManager: No longer want com.howettl.textab (pid …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.