Android-android中如何实现常驻通知

Android-android中如何实现常驻通知

泛泛之交 发布于 2017-10-11 字数 38 浏览 1167 回复 1

如何让通知栏的通知不能clear掉?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜柠檬 2017-10-22 1 楼

实现的方法如下:

NotificationManager nm ;
Notification n = new Notification(R.drawable.icon, getString(R.string.info), System.currentTimeMillis());
n.flags = Notification.FLAG_ONGOING_EVENT;

Intent i = new Intent(taskAcitivy.this, taskAcitivy.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(
taskAcitivy.this,
R.string.app_name,i,
0);
n.setLatestEventInfo(
taskAcitivy.this,getString(R.string.info),”",contentIntent);
nm.notify(R.string.app_name, n);
shared.edit().putBoolean(“flag”, true).commit();

通过以上方法可以想notification栏中增加一个常驻通知,当我们想要消除这个通知时,可以使用 nm.cancel(R.string.app_name);
如果我们想要实现该通知开机启动的话,可以使用接受开机广播来实现,具体处理方法如下:
首先 编写一个接受广播的类

public class Receiver extends BroadcastReceiver{
public void onReceive(Context arg0, Intent arg1)
{
Intent intent = new Intent();
intent.setAction(“com.leefj.application.taskmanager.TaskService”);
arg0.startService(intent);

}}

并在android配置文件中增加

然后我们跳转到TaskService当中

 public class TaskService extends Service{
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
public void onStart(Intent intent, int startId)
{
startX();
}
public void startX()
{
SharedPreferences shared=getSharedPreferences(“info”, MODE_PRIVATE);
if(shared.getBoolean(“flag”, true))
{
NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Notification n = new Notification(R.drawable.icon,getString(R.string.info), System.currentTimeMillis());
n.flags = Notification.FLAG_ONGOING_EVENT;

Intent i = new Intent(this, taskAcitivy.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(
this,
R.string.app_name,i,
0);
n.setLatestEventInfo(
this,getString(R.string.info),”",contentIntent);
nm.notify(R.string.app_name, n);
}
onDestroy();
}
}

执行并且销毁这个service,这样功能就可以实现了。
参考链接:http://labs.ywlx.net/?p=775