Tôi tự hỏi làm cách nào để kiểm tra xem ứng dụng của tôi có đang mở hay không và hiển thị với người dùng khi nhận được onMessage()
từ GCM. Lúc đầu, tôi chỉ sử dụng boolean isVisible
của riêng mình, nhưng sau đó tôi nhận ra điều này không đáng tin cậy, bởi vì nếu ứng dụng không mở, đối tượng tôi sử dụng để truy cập cờ đó là null
. Trong khi điều này trong chính nó có thể được sử dụng để xem nếu ứng dụng được mở, có vẻ như một chút lộn xộn. Có cách nào trong Android từ cấp hệ thống bằng cách nào đó kiểm tra xem ứng dụng hiện có đang mở hay không và liệu người dùng có đang xem ứng dụng không? Hãy nhớ rằng một ứng dụng có thể đang chạy về mặt kỹ thuật, nhưng không thể hiển thị, bởi vì người dùng gần đây đã nhấn nút "home" để gửi lên nền.Kiểm tra xem ứng dụng có đang mở trong sự kiện GCM onMessage không?
@Override
protected void onMessage(Context arg0, Intent arg1) {
String turn = intent.getExtras().getString("turn");
if (turn.equals("yours"){
if (/*app is open*/){ <------------------ what can go here?
// dont generate a notification
// display something in the game instead
}
else{
// generate notification telling player its their turn
}
}
}
Hãy cẩn thận về rò rỉ bộ nhớ! – rciovati
@rciovati bị rò rỉ ở đâu? – Klaasvaak
Rất tiếc, tôi không thấy bạn đặt thành 'null'các tham chiếu đến' currentActivity' khi Activity hoạt động ở chế độ onPause. – rciovati