Android - Keep service alive after exit app
Cho mình hỏi:
Theo docs của android thì
A service is a component that runs in the background to perform long-running operations or to perform work for remote processes. A service does not provide a user interface. For example, a service might play music in the background while the user is in a different application, or it might fetch data over the network without blocking user interaction with an activity. Another component, such as an activity, can start the service and let it run or bind to it in order to interact with it. A service is implemented as a subclass of Service and you can learn more about it in the Services developer guide.
So, as long as you create a service, and the user exits your app it will still run. Just like the example above.
Theo nó nói thì service chạy độc lập với activity khi tắt app nó vẫn chạy, nhưng sao mình thử cho phát nhạc bằng MediaPlayer trong Service thì tắt app nó tắt nhạc theo luôn.
Đã thử dùng startForeGround() với Notification, nhưng mới dùng lần đầu nên nó ko work.
Đây là hàm onStartCommand() trong MyService.java của mình
https://scontent-sin6-1.xx.fbcdn.net/v/t1.0-9/14291855_1030871367031068_3299865655875730517_n.jpg?oh=11f2ea207e7a7d2b93351cf0657a4035&oe=584A8018
Giờ làm sao để nó hoạt động nhỉ? Cảm ơn mọi người!
Đó là do service của bạn đang chạy cùng một process với mainUIThread. Như ta đã biết là activity là class chiếm toàn quyền chỉ huy của ứng dụng. Khi bạn tắt activity cuối cùng đi thì process đang chứa nó cũng sẽ được giải phóng nên nó giải phóng luôn cái service của bạn.
Cách khắc phục: Thêm đoạn khai báo sau vào service của bạn.
Có một số lưu ý như sau:
Mình thử thêm rồi, thậm chỉ đã định rõ lại tên process của application cho khác với service luôn vẫn không được bạn ơi.
Cho mình xem khai báo Androidmanifest của bạn với.
Cái này lạ nhỉ. Chỉ có thể là service của bạn dùng quá nhiều tài nguyên nên mới bị kill đi thôi. Chứ không thì mình cũng không có nghĩ ra nữa.
Mình dùng có 1 cái MediaPlayer thôi. Test trên điện thoại Xiaomi Redmi 3 Pro, Ram 3GB nên chắc cũng khộng thiếu Ram tới mức kill cái service đâu.
Mà mình làm đúng không nhỉ? Mình tắt app bằng cách giữ nút home rồi trượt ứng dụng ra khỏi stack
đây đâu gọi là tắt app mà là giết app, android sẽ hiểu là bạn muốn tắt hoàn toàn app này nên giết tất không chừa 1 mống