2012-01-12 64 views
5

Tôi đang tạo một dịch vụ Android sẽ bắt đầu chạy sau khi quá trình khởi động thiết bị hoàn tất. Trong dịch vụ của tôi, tôi đang tạo ra một nhiệm vụ. Nhiệm vụ này sẽ được bắt đầu hoặc dừng lại bất cứ lúc nào tùy thuộc vào một số điều kiện. Ý định của tôi là bất cứ khi nào tôi bắt đầu nhiệm vụ của mình, tôi muốn hiển thị một biểu tượng trên thanh trạng thái để biết rằng tác vụ của tôi đang chạy như biểu tượng bluetooth sẽ được hiển thị khi nó được BẬT.Hiển thị biểu tượng trên thanh trạng thái khi tác vụ của tôi đang chạy

+0

thể trùng lặp của [Làm thế nào để hiển thị một biểu tượng trên thanh trạng thái khi ứng dụng đang chạy, bao gồm trong nền?] (http://stackoverflow.com/questions/3973208/how-to-show-an-icon-in-the- trạng thái-thanh-khi-ứng dụng-đang-chạy-bao gồm-in) –

Trả lời

0

Bạn có thể sử dụng một thanh tiêu đề Tuỳ chỉnh như Custom title with image

Và Kiểm tra các thiết lập mà dịch vụ của bạn kích hoạt hoặc vô hiệu hóa và thiết lập tiêu đề tùy chỉnh sở thích. nhưng trước khi thực hiện việc này, vui lòng đọc: http://developer.android.com/guide/topics/ui/notifiers/notifications.html

+0

Tiêu đề tùy chỉnh khác với biểu tượng thanh trạng thái. Trên thực tế trong ứng dụng của tôi không có hoạt động, một dịch vụ của nó được khởi động tự động sau khi thiết bị khởi động. Có thể sử dụng tiêu đề tùy chỉnh mà không có hoạt động trong ứng dụng không? Nhưng dù sao cảm ơn cho câu trả lời của bạn. –

+0

có, có thể bắt đầu dịch vụ mà không có bất kỳ hoạt động nào ... chỉ cần bắt đầu dịch vụ của bạn là Foreground. Bạn sẽ cung cấp một đối tượng thông báo để bắt đầu dịch vụ – waqaslam

7

Bạn cần Notification. Mã đang nói :)

Trong dịch vụ của bạn:

private NotificationManager mNM; 
private int NOTIFICATION = 10002; //Any unique number for this notification 

Để hiển thị thông báo:

private void showNotification() { 
    // In this sample, we'll use the same text for the ticker and the expanded notification 
    CharSequence text = getText(R.string.local_service_started); 

    // Set the icon, scrolling text and timestamp 
    Notification notification = new Notification(R.drawable.status_icon, text, System.currentTimeMillis()); 

    // The PendingIntent to launch our activity if the user selects this notification 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
      new Intent(this, MainActivity.class), 0); 

    // Set the info for the views that show in the notification panel. 
    notification.setLatestEventInfo(this, getText(R.string.local_service_label), text, contentIntent); 

    // Send the notification. 
    mNM.notify(NOTIFICATION, notification); 
} 

và để che giấu nó, bạn chỉ cần làm điều này:

mNM.cancel(NOTIFICATION); //The same unique notification number. 

đây có một số giải thích rõ ràng:

  • R.drawable.status_icon: Notification icon
  • R.string.local_service_started: Thông báo tiêu đề
  • R.string.local_service_label: Thông báo thông tin mới nhất (phụ đề)
  • MainActivity.class: Các Hoạt động này sẽ được tung ra khi người dùng nhấp vào thông báo
+0

Tôi nghĩ rằng thông báo khác với biểu tượng trên thanh trạng thái. Tôi đã đề cập như biểu tượng Bluetooth hiển thị trên thanh trạng thái. Tôi nghĩ câu trả lời của bạn không phù hợp với yêu cầu của tôi. Nhưng dù sao, cảm ơn vì đã trả lời câu hỏi của tôi. –

+0

Ý của bạn giống như một biểu tượng mà người dùng sẽ không bao giờ tương tác? Giống như biểu tượng 3G, đồng bộ hóa và tai nghe? – iTurki

+0

có, có thể với ứng dụng không? –

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