2010-07-05 7 views
8

vừa qua Tôi đã đọc nhiều bài viết về cùng một chủ đề và đã thử tất cả các giải pháp đã cho mà không nhận được kết quả mong muốn. Chương trình nên bắt đầu một dự định cùng với tính năng bổ sung từ một thông báo:Android Pending intent bắt đầu từ notificaion does'nt thay thế

NotificationManager mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); 

Intent notificationIntent = new Intent(context, myActivity.class); 
    notificationIntent.putExtra("someData", data); 

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 

mNotificationManager.notify(ID, notification); 

Vấn đề là khi một thông báo mới được hiển thị, các tính năng bổ sung thêm vào mục đích cũng giống như trong thông báo đầu tiên. Tôi đã triend với cờ differnt trong cả ý định và mục đích đang chờ, mà không có kết quả. Tôi đang làm gì sai? Nếu tôi chỉ khởi động cùng một hoạt động (và các tính năng bổ sung) với một nút, mọi thứ hoạt động như nó được cho là.

+0

thể trùng lặp của [Android giữ bộ nhớ đệm intents tôi Extras , làm cách nào để khai báo mục đích đang chờ xử lý để giữ các tính năng bổ sung mới?] (http://stackoverflow.com/questions/3140072/android-keeps-caching-my-intents-extras-how-to-declare-a-pending-intent- that-kee) – Pentium10

+1

Vâng, có điều, tôi đọc bài viết đó, và một vài thứ nữa, nhưng không ai trong số họ làm việc f hoặc tôi. Tuy nhiên, theo một cách nào đó, tôi đã xoay sở để giải quyết nó và sẽ sớm đăng giải pháp của tôi ở đây. – Emil

Trả lời

9

Tôi không biết tại sao tôi gặp phải vấn đề như vậy khi làm việc này. Sự kết hợp các cờ tôi đã sử dụng để làm cho cờ hoạt động chính xác là:

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 
       PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT); 

Tôi cũng đã xóa tất cả các cờ được sử dụng khi tạo notificationIntent.

5

Cố gắng thêm một thuộc tính trong file AndroidManifest.xml:

<activity ... android:launchMode="singleTop"/> 
0

Cố gắng đặt mã yêu cầu cho mỗi PendingIntent và nó sẽ làm việc

PendingIntent pendingIntent = PendingIntent.getActivity(this, RandomInt, intent, 
       PendingIntent.FLAG_ONE_SHOT);