Android 当我的任务正在运行时,在状态栏中显示图标

Android 当我的任务正在运行时,在状态栏中显示图标,android,statusbar,Android,Statusbar,我正在创建一个android服务,它将在设备启动过程完成后开始运行。在我的服务中,我创建了一个任务。此任务将根据某些条件随时启动或停止。我的目的是,每当我开始我的任务时,我都希望在状态栏中显示一个图标,以知道我的任务正在像蓝牙一样运行。当它打开时,图标将显示出来。您可以使用自定义标题栏,如 并检查您的服务是启用还是禁用的首选项设置,并设置自定义标题。但在此之前,请阅读:您需要一份工作。代码正在说话:) 为您服务: private NotificationManager mNM; private

我正在创建一个android服务,它将在设备启动过程完成后开始运行。在我的服务中,我创建了一个任务。此任务将根据某些条件随时启动或停止。我的目的是,每当我开始我的任务时,我都希望在状态栏中显示一个图标,以知道我的任务正在像蓝牙一样运行。当它打开时,图标将显示出来。

您可以使用自定义标题栏,如

并检查您的服务是启用还是禁用的首选项设置,并设置自定义标题。但在此之前,请阅读:

您需要一份工作。代码正在说话:)

为您服务:

private NotificationManager mNM;
private int NOTIFICATION = 10002; //Any unique number for this notification
要显示通知,请执行以下操作:

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);
}
要隐藏它,您只需执行以下操作:

mNM.cancel(NOTIFICATION); //The same unique notification number.
以下是一些澄清:

  • R.drawable.status\u图标
    :通知图标
  • R.string.local\u服务\u已启动
    :通知标题
  • R.string.local\u service\u标签
    :通知最新信息(子标题)
  • MainActivity.class
    :当用户单击通知时将启动的活动

自定义标题与状态栏图标不同。实际上,在我的应用程序中没有活动,这是一个在设备启动后自动启动的服务。是否可以在应用程序中使用自定义标题而不使用活动?无论如何,谢谢你的回答。是的,可以在没有任何活动的情况下开始服务。。。只需启动前台服务。为了启动服务,您将提供一个通知对象。我认为通知与状态栏图标不同。我提到了状态栏上显示的蓝牙图标。我认为你的回答不适合我的要求。无论如何,谢谢你回答我的问题。你是说像一个用户永远不会与之互动的图标?像3G图标、同步和耳机一样,Android源代码中有一个类叫做。在构造函数中,状态栏中可能出现的每个图标都会初始化并设置为可见或不可见(根据需要)。您可以参考以了解更多信息。为了回答您的问题,我认为除了系统应用之外,其他应用不可能。可能存在重复的