我正在开发一个Android应用程序,我想不能由用户清零状态栏通知。有谁知道这是怎么做到的吗?我看过他们与像Skimble的应用程序,其中非清除的通知,而使用的应用程序出现。
另外,我当用户点击/按下通知,我希望它返回到已运行的应用程序实例。现在,它开始一个新的实例。又像Skimble的应用程序,我只是想回到应用程序已经运行的实例。
谢谢。
我找到了解决这个问题。我用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);
下面是NotificationCompat.Builder
解决方案
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("MyApp")
.setContentText("MyMsg")
.setOngoing(true);
更多的Google docs。
notification.setLatestEventInfo已被弃用,所以你必须使用Notification.builder,如果你使用2.X和更低的API,你必须使用NotificationComacpt.Builder,这是不适用的,我不能让我的通知停留。所以我用setDeleteIntent,并指出同样的活动和恢复方法,只需调用的代码显示您的通知块。因此,它是有点儿变通解决。