2010-08-06 50 views
6

Tôi đang tạo một ứng dụng đồng hồ nhiều điểm dừng, trong đó sẽ có nhiều bộ hẹn giờ chạy song song và mỗi thông báo được liên kết với từng bộ hẹn giờ.Android: Quản lý nhiều thông báo trên thanh trạng thái

Tôi có thể tạo nhiều bộ tính giờ với mã sau đây.

private void updateNotification(int notificationId, int clockStatusID, CharSequence text) { 
    // notificationManager.cancel(notificationId); 
    // throws up an ongoing notification that the timer is running 
    Log.i("TIMERCOUNT", "Notification id: " + notificationId); 
    Notification not = new Notification(clockStatusID, // the 
     // icon 
     // for 
     // the 
     // status 
     // bar 
     text, // the text to display in the ticker 
     System.currentTimeMillis() // the timestamp for the 
     // notification to appear 
    ); 
    Intent intent = new Intent(); 
    intent.setClassName("com.intuit.time_catcher.android.activities", 
    "com.intuit.time_catcher.android.activities.Tabs"); 
    not.setLatestEventInfo(self, 
     getText(R.string.timer_notification_title), 
     getText(R.string.timer_on_notification_text), PendingIntent 
     .getActivity(this, 0, intent, 
      PendingIntent.FLAG_UPDATE_CURRENT)); 
    not.flags += Notification.FLAG_ONGOING_EVENT; 
    not.flags += Notification.FLAG_NO_CLEAR; 
    notificationManager.notify(notificationId, not); 

} 

Sau đây là vấn đề mà bạn phải đối mặt. Cân nhắc có 3 bộ hẹn giờ đang chạy và 3 thông báo trên thanh trạng thái. Khi tôi cập nhật bộ đếm thời gian 2, thông báo 3 (mà là ở cuối cùng bên phải) được cập nhật, nhưng những gì tôi thực sự muốn làm là để cập nhật thông báo thứ hai (giữa một). Khi tôi in id thông báo, hãy xem các giá trị phù hợp. Tôi không thể hiểu tại sao tôi nhận được hành vi kỳ lạ này?

Trả lời

4

Có vẻ như ý đồ của bạn được lưu trữ (đó là mặc định ban đầu)

Hãy thử thêm một độc đáo setAction('anystring'+timestamp) hoặc một giá trị đếm, nó phải là duy nhất như được giải thích trong này question

intent.setAction("actionstring" + System.currentTimeMillis()); 
+0

Tôi đã thử nó, nhưng vẫn nhận được cùng một vấn đề –

+0

Thay vì intent.setAction() tôi đã sử dụng intent.setData() và nó đã hoạt động –

1

Đơn không thể thực sự trực tiếp kiểm soát các thông báo đơn đặt hàng được hiển thị trong ... là bạn chỉ nhìn thấy chúng được đặt hàng lại trên bạn?

Đồng thời đăng ba thông báo là khá spam. Điều gì về việc có một, có nội dung cho thấy trạng thái của tất cả 3 giờ?

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