คำถามติดแท็ก android-service

บริการเป็นส่วนประกอบของแอปพลิเคชันที่แสดงถึงความต้องการของแอปพลิเคชันในการดำเนินการที่ทำงานได้นานขึ้นในขณะที่ไม่ได้โต้ตอบกับผู้ใช้หรือเพื่อจัดหาฟังก์ชันการทำงานให้แอปพลิเคชันอื่นใช้

3
PendingIntent ไม่ส่ง Intent พิเศษ
ฉันMainActicity จะเริ่มต้นRefreshServiceด้วยการIntentที่มีความพิเศษที่เรียกว่าbooleanisNextWeek ของฉันRefreshServiceทำให้Notificationซึ่งเริ่มต้นของฉันMainActivityเมื่อผู้ใช้คลิกที่มัน ลักษณะเช่นนี้: Log.d("Refresh", "RefreshService got: isNextWeek: " + String.valueOf(isNextWeek)); Intent notificationIntent = new Intent(this, MainActivity.class); notificationIntent.putExtra(MainActivity.IS_NEXT_WEEK, isNextWeek); Log.d("Refresh", "RefreshService put in Intent: isNextWeek: " + String.valueOf(notificationIntent.getBooleanExtra(MainActivity.IS_NEXT_WEEK,false))); pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); builder = new NotificationCompat.Builder(this).setContentTitle("Title").setContentText("ContentText").setSmallIcon(R.drawable.ic_notification).setContentIntent(pendingIntent); notification = builder.build(); // Hide the notification after its selected notification.flags |= …

11
Android - ใช้ startForeground สำหรับบริการหรือไม่
ดังนั้นฉันไม่แน่ใจว่าจะใช้วิธีนี้ที่ไหน / อย่างไรเพื่อให้บริการของฉันทำงานในส่วนหน้า ขณะนี้ฉันเริ่มให้บริการตามกิจกรรมต่อไปนี้ในกิจกรรมอื่น: Intent i = new Intent(context, myService.class); context.startService(i); จากนั้นใน myServices 'onCreate () ฉันลอง startForeground () ... ? Notification notification = new Notification(); startForeground(1, notification); ใช่ฉันหลงทางเล็กน้อยและไม่แน่ใจว่าจะใช้สิ่งนี้อย่างไร

13
การกำหนดแอ็พพลิเคชันเบื้องหน้าปัจจุบันจากงานพื้นหลังหรือบริการ
ฉันต้องการมีแอปพลิเคชั่นหนึ่งตัวที่ทำงานอยู่เบื้องหลังซึ่งจะรู้ว่าเมื่อใดที่มีแอปพลิเคชันในตัว (การส่งข้อความรายชื่อติดต่อ ฯลฯ ) กำลังทำงานอยู่ ดังนั้นคำถามของฉันคือ: ฉันควรเรียกใช้แอปพลิเคชันของฉันในพื้นหลังอย่างไร แอปพลิเคชันพื้นหลังของฉันจะรู้ได้อย่างไรว่าแอปพลิเคชันที่กำลังทำงานอยู่เบื้องหน้าคืออะไร คำตอบจากผู้ที่มีประสบการณ์จะได้รับการชื่นชมอย่างมาก

2
Android onCreate หรือ onStartCommand สำหรับการเริ่มบริการ
โดยปกติเมื่อฉันสร้างบริการ Android ฉันใช้onCreateวิธีนี้ แต่ในโครงการสุดท้ายของฉันไม่ได้ผล ฉันลองใช้onStartCommandแล้วและดูเหมือนว่าจะได้ผล คำถามคือเมื่อต้องใช้บริการต้องใช้วิธีใด? ฉันต้องใช้วิธีใด onCreate, onStartCommandหรือทั้งสองอย่าง? และแต่ละบทบาทเป็นอย่างไร?

1
เหตุผลที่ Intent ที่ส่งผ่านจะเป็น NULL ใน onStartCommand
มีเหตุผลอื่นใดที่ Intent ที่ถูกส่งไปonStartCommand(Intent, int, int)จะเป็น NULL นอกจากระบบจะเริ่มบริการใหม่ผ่านแฟล็กเช่นSTART_STICKY? นอกจากนี้เมื่อบริการเริ่มต้นใหม่โดยระบบIntent.getAction()เมธอดจะคืนค่า NULL ... เจตนาไม่ได้เป็นเพียงโมฆะgetAction() ฉันถามที่นี่ด้วย แต่ยังไม่ได้รับคำตอบ UPDATE : หลังจากคุยกับ Mark Murphy เขาแนะนำให้ฉันกลับมาSTART_REDELIVER_INTENTในการonStartCommand()ติดต่อกลับในบริการของฉันแทนที่จะSTART_STICKYส่งเจตนาทั้งหมดหลังจากเริ่มต้นใหม่ ฉันไม่ได้ทำสิ่งนี้ในตอนแรกเพราะฉันกังวลว่าหากบริการกำลังพยายามทำอะไรบางอย่างระหว่างนั้นมีการเริ่มบริการใหม่ ... ฉันเดาว่านั่นเป็นตรรกะที่ฉันจะต้องรับผิดชอบ :)

5
ความแตกต่างระหว่าง Intent และ PendingIntent
ฉันอ่านบทความบางบทความและดูเหมือนว่าทั้งคู่จะทำในสิ่งเดียวกันและฉันก็สงสัยว่าอะไรคือความแตกต่างระหว่างการเริ่มบริการแบบนั้น: Intent intent = new Intent(this, HelloService.class); startService(intent); หรือเช่นนั้น: Calendar cal = Calendar.getInstance(); Intent intent = new Intent(this, MyService.class); PendingIntent pintent = PendingIntent.getService(this, 0, intent, 0); AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 30*1000, pintent); ตามที่ฉันอ่านทั้งสองสิ่งนี้ทำสิ่งเดียวกันหากในบริการคุณส่งคืนพารามิเตอร์ START_STICKY;

4
เปิดแอปพลิเคชัน Android โดยไม่มีกิจกรรมหลักและเริ่มบริการเมื่อเปิดแอปพลิเคชัน
ฉันมีสถานการณ์ต่อไปนี้ในแอปพลิเคชันของฉัน ไม่มี UI ในแอปพลิเคชันของฉัน แทนที่จะเป็นบริการที่เริ่มต้นในการบูตเครื่องและจะทำงานอย่างต่อเนื่อง ฉันจะกำหนดค่าไฟล์รายการโดยไม่มีกิจกรรมหลักได้อย่างไร ฉันสามารถเปิดแอปโดยไม่มีกิจกรรมได้หรือไม่? และเมื่อเปิดตัวแอปบริการของฉันควรเริ่มต้น เป็นไปได้หรือไม่ ฉันไม่ต้องการสร้างกิจกรรมโปร่งแสงเพื่อเริ่มใช้บริการ

2
เครื่องรับสัญญาณภายในบริการ
ฉันกำลังพยายามเริ่มต้นBroadcastReceiverภายในไฟล์Service. สิ่งที่ฉันพยายามทำคือมีพื้นหลังที่กำลังทำงานserviceซึ่งรวบรวมข้อความขาเข้าและบันทึกการโทรเข้า ฉันคิดว่าวิธีที่ดีที่สุดในการดำเนินการนี้คือการserviceวิ่งที่มีเครื่องรับสัญญาณออกอากาศที่สามารถแคตตาล็อกได้ ฉันจะทำสิ่งนี้ได้อย่างไร? ฉันมีบริการของฉันอยู่แล้ว

14
จะ startForeground () โดยไม่แสดงการแจ้งเตือนได้อย่างไร?
ฉันต้องการสร้างบริการและให้มันทำงานในส่วนหน้า โค้ดตัวอย่างส่วนใหญ่มีการแจ้งเตือนอยู่ แต่ฉันไม่ต้องการแสดงการแจ้งเตือนใด ๆ เป็นไปได้หรือไม่ ช่วยยกตัวอย่างหน่อยได้ไหม มีทางเลือกอื่นหรือไม่? บริการแอพของฉันกำลังทำมีเดียเพลเยอร์ วิธีทำให้ระบบไม่ฆ่าบริการของฉันยกเว้นแอพจะฆ่ามันเอง (เช่นหยุดชั่วคราวหรือหยุดเพลงทีละปุ่ม)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.