当我长按主页按钮并杀死我的应用程序时,通知已从状态栏中删除,但我想在应用程序被杀时保留它,如何在应用程序被杀时保持状态栏上的通知?
答案 0 :(得分:0)
你可以做的是使用:
注意:如果终止您的服务会对用户造成干扰,您可以设置此标记,例如,如果您的服务正在播放背景音乐,那么用户会注意到他们的音乐是否停止播放。
并停止使用:
注意:从前台状态删除此服务,如果需要更多内存则允许它被终止。
希望这能帮到你。
答案 1 :(得分:0)
在fragment
或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());
}
}
,如下所示。
receiver
这将解决您的问题。
<强>更新强>
我忘记提及您还必须在AndroidManifest.xml
中添加<receiver android:name=".NotificationReceiver"/>
。
class
即。您必须将receiver
文件放在{{1}}
答案 2 :(得分:0)
您的通知需要由我关闭的活动后持续存在的内容所拥有,例如Service
。创建一个管理通知的小Service
。您的活动可以向服务发送意图,或绑定到服务并直接通过连接调用方法,以修改通知的状态。
我在移动设备上,因此无法轻松构建示例...请继续关注。 ^ _ ^