2010-10-06 44 views
18

Tôi muốn viết một dịch vụ cho nền tảng Android được thông báo khi hoạt động nền trước hiện tại thay đổi. Về cơ bản, dịch vụ chỉ thực hiện một số tác vụ khi hoạt động hàng đầu thay đổi. Có cách nào để đăng ký và được thông báo khi loại sự kiện này xảy ra không? Hoặc không có khả năng và dịch vụ nên thăm dò theo thời gian danh sách các hoạt động đang hoạt động và để kiểm tra hoạt động ... Điện thoạiCách được thông báo khi hoạt động (ứng dụng) trên nền trước (thay đổi)

+0

On nền tảng gì bạn đang cố gắng để viết dịch vụ của bạn? – Guillaume

+0

Nền tảng Android 2.1 – Alex

+2

Bạn đã bao giờ tìm thấy giải pháp cho điều này chưa? Tôi đang cố gắng làm một cái gì đó tương tự. – harbinja

Trả lời

4

AFAIK có hai cách Để làm việc đó.

  1. Bắt đầu một dịch vụ và giám sát Hoạt động Stack, bạn có thể kiểm tra xem nó here
  2. Sử dụng Dịch vụ trợ, bạn có thể tìm một giải pháp here
+0

Lưu ý rằng kỹ thuật liên kết để bỏ phiếu cho hoạt động hiện tại không hoạt động trong Android 5+. – Sam

+0

@Sam Sau đó, cách ứng dụng bảo vệ ứng dụng đã chọn hoạt động? Làm thế nào họ phát hiện khi một ứng dụng đến và tiền cảnh? Cảm ơn bạn –

+0

@Astrount, tôi không biết nhà phát triển sử dụng những ngày này, nhưng lần cuối cùng tôi chọn, tùy chọn 2 trong câu trả lời này vẫn hoạt động trong Android 5. – Sam

1

Bạn nên liên kết mọi hoạt động với dịch vụ và bạn sẽ biết hoạt động nào đang chạy.

thử điều này:

List runningTaskInfos=actvityManager.getRunningTasks(1).get(i).topActivity .getPackageName(); 

phương pháp này sẽ cung cấp cho thông tin của tên gói hoạt động của mà là ở foreground ..............

+1

Đây không phải là giải pháp, có thể tôi đã nói sai, tôi muốn dịch vụ được thông báo ứng dụng nào đang chạy ở nền trước (có thể là bất kỳ ứng dụng đã cài đặt nào) và so sánh với danh sách ứng dụng được xác định trước và nếu nó nằm trong danh sách để thực hiện một số công việc. – Alex

+0

Ah ok, bạn đã viết Hoạt động nên tôi hiểu rằng đó chỉ là một ứng dụng. Tôi thực sự không biết làm thế nào để làm những gì bạn muốn làm xin lỗi – fedj

+0

Bất cứ ai khác :)? – Alex

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