Làm cách nào để ngăn ứng dụng khỏi bị giết khi ngủ?


11

Tôi có một Droid 2. Tôi có một trò chơi dài, tốn nhiều tài nguyên (linh hồn quang phổ) mà tôi muốn tiếp tục chạy trong khi tôi không sử dụng điện thoại của mình. Nếu tôi nhấn nút "Home" của Android để quay lại màn hình chính và ngay lập tức khởi động lại trò chơi, nó sẽ ở ngay nơi tôi rời đi. Tương tự nếu tôi nhấn nút nguồn để ngủ, sau đó bật ngay điện thoại, mở khóa và khởi chạy lại trò chơi.

Nếu tôi để nó trong một khoảng thời gian (một vài giờ), thì khi tôi quay lại và khởi động trò chơi, nó sẽ bắt đầu mới như thể nó không bao giờ chạy. Điện thoại đã không được sử dụng cho bất cứ điều gì trong khi đó, mặc dù đồng bộ hóa được bật.

Câu hỏi của tôi có hai mặt: làm thế nào tôi có thể biết thêm thông tin về những ứng dụng bị giết khi nào & tại sao và làm cách nào tôi có thể thiết lập nó để cho phép ứng dụng này tiếp tục chạy? Tôi không cần nó để làm bất cứ điều gì trong nền, tôi chỉ muốn nó vẫn ở đó khi tôi trở lại.

Tôi quen thuộc với khái niệm xóa bộ nhớ Android vì nó cần thiết và không cần một kẻ giết người nhiệm vụ, nhưng tôi muốn nó không giết nhiệm vụ NÀY trừ khi tôi thực sự thoát nó.


Tôi giả sử bạn không có quyền truy cập vào mã thực tế?
Nanne

Chính xác, đây là những ứng dụng nguồn đóng được mua ngoài cửa hàng ứng dụng.
Jason Viers

Câu trả lời:


2

Tôi khá chắc chắn rằng đó không phải là một tùy chọn trong thiết kế mặc định của Android. Cá nhân tôi chưa bao giờ thấy một ứng dụng cho những thứ như vậy bởi vì hầu hết mọi người đều mong muốn các chương trình tắt để giữ tốc độ của điện thoại. Đây là hệ thống Android đang tắt các chương trình không sử dụng. Người tạo ra ứng dụng sẽ phải thiết kế một dịch vụ để giữ cho nó chạy ở chế độ nền hoặc có thể giống như luôn luôn tính toán hoặc âm thanh để hệ thống nghĩ rằng chương trình đang làm gì đó. Điều đó sẽ ăn hết pin của bạn.


Trong khi câu đầu tiên và câu thứ ba của bạn là hoàn toàn chính xác, những câu khác thì không.
Michael

2

Gợi ý: Sử dụng Tasker để thời gian chờ màn hình vô hiệu hóa cho ứng dụng của bạn. Điều này có thể ngăn nó đi đến nền.


Tôi sẽ xem và dùng thử, cảm ơn! Tôi sẽ lưu ý về bất kỳ thành công hay thất bại.
Jason Viers

Tôi có thể xác nhận rằng việc thay đổi thời gian chờ màn hình trong Tasker sẽ KHÔNG ngăn ứng dụng bị giết. Nhờ đề nghị mặc dù.
Jason Viers

1
Đợi đã, điều này sẽ ngăn màn hình tắt? Như vậy lãng phí pin?
Michael

2

Đến phần đầu tiên của câu hỏi của bạn;

Làm cách nào tôi có thể biết thêm thông tin về những ứng dụng bị giết khi nào & tại sao?

SDK Android có bản tóm tắt nhanh về Bộ nhớ Android http://developer.android.com/guide/topics/fundamentals.html

Theo mặc định, mọi ứng dụng chạy trong quy trình Linux của riêng nó. Android bắt đầu quá trình khi bất kỳ thành phần nào của ứng dụng cần được thực thi, sau đó tắt quy trình khi không còn cần thiết hoặc khi hệ thống phải khôi phục bộ nhớ cho các ứng dụng khác.

Vì vậy, Android có thể được tóm tắt là chương trình tiêu diệt khi nó xác định bạn không sử dụng nó (tôi đã nhấp vào thoát trong ứng dụng) hoặc khi hết tài nguyên. Ví dụ: Nếu bạn có 512 MB ram và 10 miễn phí và bạn khởi chạy một ứng dụng cần 12, nó sẽ cố gắng xác định ứng dụng ít được sử dụng nhất mà nó có thể lấy 12 từ đó.

Nó có xu hướng làm điều này khá tốt (ít nhất là theo kinh nghiệm của tôi). Bạn có thể có thể về nhà từ trò chơi của mình và làm một vài điều, nhưng ở điều thứ ba, nó sẽ đuổi trò chơi. Hãy ghi nhớ cách các trò chơi chuyên sâu về tài nguyên nói riêng, vì vậy có khả năng nó sẽ giết ứng dụng đó sớm hơn sau đó.

Bây giờ lý do nó biến mất sau thời gian, là bạn có thể có các quy trình đồng bộ hóa đang cố gắng bắt đầu và cạnh tranh tài nguyên. Các trang bộ nhớ ứng dụng đã bị tấn công rất ít vào thời điểm này, vì vậy đây là trò chơi công bằng với bất kỳ việc cải tạo bộ nhớ nào mà HĐH cảm thấy là cần thiết.

Để câu hỏi thứ hai của bạn;

Làm cách nào tôi có thể thiết lập nó để cho phép ứng dụng này tiếp tục chạy?

Tôi không sử dụng một kẻ giết người nhiệm vụ, nhưng tôi khá chắc chắn rằng những người giỏi (có vẻ như ATK là người lãnh đạo https://market.android.com/details?id=com.rechild.advifiedtaskkiller&feature=search_result ) có một ngoại lệ danh sách. Có thể liệt kê danh sách trắng trò chơi mà bạn muốn và đưa vào danh sách đen các quy trình khác.

Tôi cũng không quen thuộc với trò chơi này, vì vậy tôi không chắc khả năng tự động lưu và những thứ này có. Hy vọng tôi đã được giúp đỡ.


1

Làm thế nào để có thêm thông tin những ứng dụng nào bị giết và tại sao?

Bạn có thể kết nối điện thoại của bạn với adb ; và sau đó bật logcat ; lưu đầu ra vào tập tin.
Trong tệp nhật ký, bạn sẽ có hàng tấn thông tin; bằng cách tìm kiếm tên ứng dụng cho bạn; bạn có thể tìm ra khi nó bị giết.

Bạn có thể làm gì để ngăn chặn nó bị dừng bởi hệ thống Android?
Tôi không biết; Hy vọng câu trả lời rAndy sẽ làm việc.
Tuy nhiên; Tôi sẽ liên hệ với nhà phát triển và cho anh ấy biết vấn đề, bởi vì anh ấy / cô ấy nên có thời gian dễ dàng nhất để khắc phục nó


Tôi đã đề cập đến giải pháp logcat. Chỉ muốn thêm rằng bạn đã quá tìm kiếm ActivityManager ("trình diệt tác vụ" nội bộ của Android). Bạn không thể ngăn Android khỏi ứng dụng giết người. Ý tưởng của Android là nếu một quá trình ứng dụng bị hủy hoàn toàn, ứng dụng sẽ có thể khôi phục trạng thái trước đó. Vì vậy, các nhà phát triển ứng dụng phải đảm bảo rằng bạn không bắt đầu trò chơi ngay từ đầu.
Lưu lượng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.