我正在开发Android应用,我想要一个无法被用户清除的状态栏通知。有谁知道这是怎么做到的吗?我在Skimble等应用程序中看到过这些应用程序,在使用应用程序时出现了不可清除的通知。
另外,当用户点击/按下通知时,我希望它返回到已经运行的应用实例。现在它启动一个新实例。再次像Skimble应用程序一样,我只想返回已经运行的应用程序实例。
感谢。
答案 0 :(得分:4)
我找到了解决这个问题的方法。我使用FLAG_ONGOING_EVENT来保持通知。这是代码:
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
int icon = R.drawable.mypic;
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
notification.flags = Notification.FLAG_ONGOING_EVENT;
Context context = getApplicationContext();
CharSequence contentTitle = "Title Text";
CharSequence contentText = "Content text.";
Intent intent = new Intent(this, MyClass.class);
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
final int HELLO_ID = 1;
mNotificationManager.notify(HELLO_ID, notification);
答案 1 :(得分:4)
以下是NotificationCompat.Builder
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("MyApp")
.setContentText("MyMsg")
.setOngoing(true);
更多Google docs。
答案 2 :(得分:0)
notification.setLatestEventInfo已弃用,因此您必须使用Notification.builder,如果您使用2.X和更低版本的API,则必须使用NotificationComacpt.Builder,这不适用,我无法保留通知。所以我使用setDeleteIntent并指向相同的活动,并在resume方法上调用显示通知的代码块。所以它有点解决。