Android 当应用程序被终止时,如何在状态栏上保持通知?

Android 当应用程序被终止时,如何在状态栏上保持通知?,android,android-notifications,android-statusbar,Android,Android Notifications,Android Statusbar,当我长按home按钮并终止我的应用程序时,通知已从状态栏中删除,但我希望在应用程序终止时保留通知,当应用程序终止时如何在状态栏上保留通知?你可以做的是使用: 注意:如果终止您的服务会对用户造成干扰,例如如果您的服务正在播放背景音乐,则可以设置此标志,这样用户会注意到他们的音乐是否停止播放 要停止这种使用: 注意:将此服务从前台状态删除,如果需要更多内存,则允许终止此服务 希望这对您有所帮助。在活动或片段中创建如下方法,即您需要通知服务的地方。然后在那里调用这个方法 private voi

当我长按home按钮并终止我的应用程序时,通知已从状态栏中删除,但我希望在应用程序终止时保留通知,当应用程序终止时如何在状态栏上保留通知?

你可以做的是使用:

注意:如果终止您的服务会对用户造成干扰,例如如果您的服务正在播放背景音乐,则可以设置此标志,这样用户会注意到他们的音乐是否停止播放

要停止这种使用:

注意:将此服务从前台状态删除,如果需要更多内存,则允许终止此服务


希望这对您有所帮助。

活动
片段
中创建如下方法,即您需要通知服务的地方。然后在那里调用这个方法

private void buildNotification(){

    Intent intent = new Intent(getActivity(), NotificationReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity(), 0, intent, 0);

    AlarmManager am = (AlarmManager) getActivity().getSystemService(getActivity().ALARM_SERVICE);
    am.set(AlarmManager.RTC_WAKEUP, myCalendar.getTimeInMillis(), pendingIntent);
}
现在创建一个类(这里我创建了
NotificationReceiver.class
),它扩展了
BroadcastReceiver
,如下所示

public class NotificationReceiver extends BroadcastReceiver{

private static final int NOTIFICATION_ID = 1991;

@Override
public void onReceive(Context context, Intent intent) {

    int num = 0;

    Intent contentIntent = new Intent(context, MainActivity.class);

    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, contentIntent, PendingIntent.FLAG_ONE_SHOT);

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
    builder.setSmallIcon(R.drawable.ic_notifications_black_24dp);
    builder.setContentTitle("your title.");
    builder.setContentText("your text.");
    builder.setContentIntent(pendingIntent);
    builder.setTicker("ticker text.");
    builder.setAutoCancel(true);
    builder.setOnlyAlertOnce(true);
    builder.setDefaults(Notification.DEFAULT_ALL);
    builder.setNumber(++num);

    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    mNotificationManager.notify(NOTIFICATION_ID, builder.build());
    }
}
这会解决你的问题

更新

我忘了提到,您还必须在
AndroidManifest.xml
中添加
receiver

<receiver android:name=".NotificationReceiver"/>


i、 e.您必须将您的
文件放入
接收者

您的通知需要由我关闭活动后仍然存在的东西拥有,如
服务
。创建一个小型
服务
,用于管理通知。您的活动可以向服务发送意图,或直接通过连接绑定到服务并调用方法,以修改通知的状态


我在手机上,所以无法轻松构建一个示例。。。请继续收看^_^

创建一个前台服务好的,我给了你一个新的答案,希望这对你有所帮助;)我试过了,但解决不了我的问题。谢谢你@Neel