Android状态栏通知:让未清除的,并使其返回到应用程序(不启动一个新的实例)

问题描述 投票:7回答:3

我正在开发一个Android应用程序,我想不能由用户清零状态栏通知。有谁知道这是怎么做到的吗?我看过他们与像Skimble的应用程序,其中非清除的通知,而使用的应用程序出现。

另外,我当用户点击/按下通知,我希望它返回到已运行的应用程序实例。现在,它开始一个新的实例。又像Skimble的应用程序,我只是想回到应用程序已经运行的实例。

谢谢。

android notifications statusbar
3个回答
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);

4
投票

下面是NotificationCompat.Builder解决方案

NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.ic_launcher)
        .setContentTitle("MyApp")
        .setContentText("MyMsg")
        .setOngoing(true);

更多的Google docs


0
投票

notification.setLatestEventInfo已被弃用,所以你必须使用Notification.builder,如果你使用2.X和更低的API,你必须使用NotificationComacpt.Builder,这是不适用的,我不能让我的通知停留。所以我用setDeleteIntent,并指出同样的活动和恢复方法,只需调用的代码显示您的通知块。因此,它是有点儿变通解决。

© www.soinside.com 2019 - 2024. All rights reserved.