2014-09-11 13 views
6

Tôi đã tạo một bộ thu để nhận và hiển thị thông báo đẩy - khi người dùng nhấn vào thông báo đẩy nó sẽ mở một liên kết sâu trong ứng dụng của tôi. Vấn đề là khi người dùng nhấn "back", anh ta không quay trở lại màn hình chính, nhưng thay vào đó anh ta đi đến bất cứ màn hình nào cho ứng dụng của tôi đã mở trước khi ứng dụng backstack - ngay cả khi ứng dụng đã được thu nhỏ trước khi anh ta nhấn thông báo.Android - làm thế nào để mở một ý định liên kết sâu thông báo đẩy rằng, khi đóng cửa, quay lại Màn hình chính?

Hành vi mà tôi cần là để người dùng ở trên màn hình chính, để anh ấy mở bảng thông báo, nhấn vào thông báo của tôi, truy cập trang liên kết sâu trong ứng dụng của tôi và khi anh ấy nhấn nút quay lại - Tôi muốn anh ta thoát ra khỏi màn hình chính một lần nữa. Tôi không muốn anh ta trong bất kỳ cách nào tương tác với backstack cho các ứng dụng chính.

Tôi đã thử nhiều kết hợp cờ cho pendingIntent trong thông báo đẩy. Mọi thứ từ FLAG_ACTIVITY_TASK_ON_HOME đến FLAG_ACTIVITY_TASK_ON_HOME tới FLAG_ACTIVITY_NEW_TASK tới FLAG_ACTIVITY_SINGLE_TOP, v.v. Không có sự kết hợp nào cho tôi những gì tôi muốn - trong mọi trường hợp, mở liên kết sâu với ứng dụng thu nhỏ sẽ luôn đưa tôi trở lại trang tiếp theo trong lịch sử ứng dụng khi tôi nhấn nút quay lại. Làm sao tôi có thể giải quyết việc này?

Ví dụ mã:

 Intent notificationIntent = new Intent(this, DeepLink.class); 
    notificationIntent.setData(Uri.parse(url)); 
    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME); 
    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    PendingIntent pendingIntent = PendingIntent.getActivity(getBaseContext(), 1,  notificationIntent, 0); 

Trả lời

0

Giải Quyết. Lớp liên kết sâu đã bắt đầu một ý định cho mỗi liên kết sâu và những yêu cầu này mà tôi đặt cờ NEW_TASK và CLEAR_TASK cho mỗi liên kết. Sau đó - mọi thứ đều hiệu quả.

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