Tôi muốn cung cấp cho người dùng thông báo bánh mì nướng mỗi phút 'x', tôi đã cố gắng thực hiện điều này với sự trợ giúp của dịch vụ, nhưng khi ứng dụng bị giết, dịch vụ dừng lại. Cùng một vấn đề xảy ra với Dịch vụ ý định là tốt, tôi nên làm gì để tôi giữ một luồng/dịch vụ trong bộ nhớ ngay cả sau khi ứng dụng bị giết?Làm thế nào để chạy một chuỗi trong nền sau khi ứng dụng bị giết
Trả lời
Các điều khoản của câu hỏi của bạn là một chút bối rối:
- ứng dụng nằm trong một quá trình. Nếu quá trình này bị giết, thì mọi thứ đang chạy trong tiến trình đó sẽ bị giết.
- nếu bạn muốn một cái gì đó để tồn tại cái chết của quá trình, bạn nên sử dụng một quá trình thứ hai và chạy điều để tồn tại bên trong nó.
- một dịch vụ có thể được chạy theo quy trình riêng của nó, trông giống như một lựa chọn tốt ở đây. Nhìn vào android: quá trình thuộc tính trong thẻ dịch vụ: http://developer.android.com/guide/topics/manifest/service-element.html
Nhưng những gì bạn muốn làm là có lẽ đơn giản: đặt một nhiệm vụ lặp đi lặp lại. Đối với điều này, bạn có thể sử dụng alarm manager.
Bạn có thể, ví dụ:
- cung cấp người quản lý báo động với một ý định
- mục đích cấp phát chưa xử lý sẽ kích hoạt một dịch vụ của riêng
- các dịch vụ của bạn chúng tôi sẽ thức dậy, sau đó chạy. Điều này có lợi thế là không cho phép dịch vụ của bạn luôn chạy và đếm thời gian để biết khi nào nó phải thức dậy (sẽ tiêu hao pin). Ở đây người quản lý báo động sẽ đánh thức nó khi cần thiết, dịch vụ của bạn sẽ chỉ thực hiện nhiệm vụ của nó và chết.
Nếu bạn kết hợp phương pháp này với phần đầu của câu trả lời đó, chạy dịch vụ của bạn theo một quy trình khác, bạn có thể đạt được thứ gì đó thực sự nhẹ cho thiết bị Android: chỉ dịch vụ của bạn (theo quy trình riêng) sẽ thức dậy ở khoảng thời gian nhất định và quy trình của ứng dụng sẽ không được khởi chạy bởi báo thức này, mà chỉ là quy trình của dịch vụ.
Và về thông báo bánh mì nướng, có, dịch vụ là nơi tốt để thực hiện, nhưng thanh thông báo có thể phù hợp hơn để hiển thị thông báo và thông báo cho người dùng biết một số sự kiện đã diễn ra bên trong dịch vụ nền.
Đây là câu trả lời đúng để giải quyết vấn đề. 'AlarmManager' sẽ đảm bảo rằng Người nhận được gọi cứ sau mỗi n phút và không có quá trình nào còn sống để lo lắng. Tuy nhiên, câu trả lời của Adhikari là phù hợp hơn với câu hỏi được hỏi. – velis
Thử triển khai dịch vụ nền trước. foreground service
Dịch vụ mặt trước hiển thị thông báo và không bao giờ bị dừng cho đến khi bạn muốn.
Thực hiện đoạn mã này trong onCreate của dịch vụ của bạn
Notification notification = new Notification(R.drawable.icon, getText(R.string.ticker_text),
System.currentTimeMillis());
Intent notificationIntent = new Intent(this, ExampleActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(this, getText(R.string.notification_title),
getText(R.string.notification_message), pendingIntent);
startForeground(ONGOING_NOTIFICATION_ID, notification);
Tôi muốn hiển thị một bánh mì nướng chứ không phải thông báo. –
Nếu thông báo được hiển thị thì dịch vụ chạy ở nền trước và không bao giờ dừng hệ thống khác sẽ kết thúc khi tài nguyên được yêu cầu. –
- 1. Làm thế nào để thực hiện dọn dẹp khi ứng dụng bị giết trong nền?
- 2. Làm cách nào để mô phỏng ứng dụng bị giết trong nền?
- 3. Tôi có thể phát hiện khi một Chủ đề nền bị giết bởi ứng dụng khi ứng dụng đóng không?
- 4. Làm thế nào để chạy ứng dụng J2ME trong nền?
- 5. Làm thế nào để chạy ứng dụng android trong nền
- 6. Làm thế nào để xử lý lỗi AVPlayer trong khi ứng dụng đang chạy trong nền?
- 7. C# Làm thế nào để ứng dụng tiếp tục chạy ngay cả sau khi tập tin ứng dụng bị xóa
- 8. Làm thế nào để chạy một ứng dụng Android trong nền?
- 9. Tìm nạp nền không hoạt động sau khi giết ứng dụng
- 10. Khởi động lại ứng dụng Android sau khi quá trình bị giết
- 11. Phiên bị giết sau một thời gian ngắn trong hồ bơi ứng dụng 64bit
- 12. Làm thế nào để chạy một tập lệnh sau khi Xcode chạy codesign trên ứng dụng iPhone của tôi?
- 13. Làm thế nào để giết một quy trình không chạy trong Android
- 14. Hành động trên ứng dụng bị giết trong android
- 15. cách chạy ứng dụng android phonegap ở chế độ nền (sau khi đóng ứng dụng)?
- 16. làm thế nào để chạy ứng dụng của tôi trong nền trong iphone?
- 17. Làm thế nào để giết một quá trình trong Cygwin?
- 18. Hỗ trợ GCM cho ứng dụng ios khi ứng dụng ở chế độ nền hoặc bị giết
- 19. Làm thế nào để giết một vòng lặp trong khi với một tổ hợp phím?
- 20. Dừng dịch vụ nền Khi ứng dụng chạy đến nền
- 21. Làm thế nào tôi có thể chạy ổ cắm UDP trong nền trong ứng dụng iPhone?
- 22. Geofences không hoạt động khi ứng dụng bị giết
- 23. Làm thế nào để biết liệu ứng dụng được chấm dứt bởi người dùng hoặc iOS (sau khi nền 10min)
- 24. 'Bundle savedInstanceState' có còn hoạt động sau khi Ứng dụng bị giết không?
- 25. Làm thế nào để chạy ứng dụng Console trong nền (không có giao diện người dùng)?
- 26. Làm thế nào để chạy một ứng dụng web gradle?
- 27. Làm thế nào để chạy công việc Sinatra trong nền?
- 28. Dừng ứng dụng chạy trong nền?
- 29. Làm thế nào để giết một ứng dụng của bên thứ 3?
- 30. Giết ứng dụng android khi tạm dừng
+1 cho câu hỏi hay – Pankaj