2013-05-13 35 views
6

Tôi là người mới tham gia phát triển Android và tôi quan tâm đến hai điều được kết nối với Google Cloud Messaging.Tôi có nhận được tin nhắn GCM hay không nếu Android giết ứng dụng của tôi và nếu tôi thực hiện Đóng Force từ cài đặt?

  1. Android có hoàn toàn giết ứng dụng nếu chúng chạy trong một thời gian dài dưới nền như iOS không? Và nếu như vậy, tôi sẽ nhận được thông báo GCM sau khi ứng dụng của tôi bị Android giết?
  2. Có sự khác biệt nào giữa Force Close (từ menu cài đặt) và khi ứng dụng bị Android giết? Và nếu tôi đóng Force Close, tôi có nhận được thông báo GCM không?
+0

@ noundla, Bạn có thể vui lòng xây dựng điểm bạn nói không? Tại sao chúng tôi nhận được thông điệp, sau khi dừng lại. –

+0

@Noundla, không, nếu quy trình của bạn không chạy, bạn sẽ nhận được kết quả HỦY khi bạn nhận được GCM. Lưu ý điều này trong logcat của bạn: Gọi lại ý định phát sóng W/GCM/DMM: result = CANCELED forIntent {act = com.google.android.c2dm.intent.RECEIVE pkg = xxxx (có phần bổ sung)} – Zennichimaro

Trả lời

5

1 - vâng, nhưng nếu bạn cài đặt trong tệp kê khai của mình, bộ thu phát sóng sẽ nghe gcm, nó sẽ kích hoạt. Những gì bạn sẽ làm với sự kiện đó phụ thuộc vào ứng dụng của bạn. Một thực tế phổ biến là bắt đầu một dịch vụ ý định xử lý thông điệp. Tùy thuộc vào bạn để tương tác với các hoạt động của ứng dụng của bạn.

2 - Từ Android 3.1, nếu lực lượng người dùng đóng ứng dụng của bạn, nó sẽ dừng lại để được thông báo về bất kỳ chương trình phát sóng nào cho đến khi người dùng không khởi động lại ứng dụng của bạn. Kiểm tra "Kiểm soát khởi chạy trên các ứng dụng đã dừng" here để biết thêm chi tiết.

+1

Cảm ơn bạn. Như tôi đã hiểu nếu tôi sẽ thực hiện một Đóng Force i sẽ không nhận được thông báo GCM. Nhưng tôi không hiểu tại sao. Dưới đây là những gì tôi đọc trong tài liệu: "Dịch vụ hoặc ứng dụng nền có thể ghi đè hành vi này bằng cách thêm cờ FLAG_INCLUDE_STOPPED_PACKAGES để phát sóng ý định được phép kích hoạt ứng dụng đã dừng". Bạn có thể giải thích những gì đã xảy ra trong nội bộ khi tôi thực hiện một Lực lượng Đóng không? Và xin vui lòng nhận xét rằng dòng từ các tài liệu. Xin cảm ơn trước! – MainstreamDeveloper00

+0

Điều gì xảy ra là nếu ứng dụng bị gắn cờ là dừng mọi mục đích phát sóng (chẳng hạn như ý định phát của bạn đã nhận) bị chặn cho đến khi ứng dụng thoát khỏi trạng thái đó (có nghĩa là sau lần bắt đầu đầu tiên/a) khởi động lại sau một khối cưỡng bức). Mục đích này là để chặn ứng dụng không mong muốn để thực thi ở chế độ nền mà không bị bắt đầu hoặc sau khi đóng một lực. Nó là một loại bảo vệ vì chặn các chương trình phát sóng bạn có thể thực thi mã trong nền ngay cả khi hệ điều hành đã giết ứng dụng của bạn. – fedepaol

Các vấn đề liên quan