How to create notifications that don't go away when clicked in Android?

前端 未结 5 869
独厮守ぢ
独厮守ぢ 2021-02-05 21:18
int icon = R.drawable.icon4;        
CharSequence tickerText = \"Hello\"; // ticker-text
long when = System.currentTimeMillis();         
Context context = getApplicatio         


        
相关标签:
5条回答
  • 2021-02-05 21:49
    int icon = R.drawable.ic_launcher;
    long when = System.currentTimeMillis();
    NotificationManager nm=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    Intent intent=new Intent(context,MainActivity.class);
    PendingIntent  pending=PendingIntent.getActivity(context, 0, intent, 0);
    Notification notification;
        if (Build.VERSION.SDK_INT < 11) {
            notification = new Notification(icon, "Title", when);
            notification.setLatestEventInfo(
                    context,
                    "Title",
                    "Text",
                    pending);
        } else {
            notification = new Notification.Builder(context)
                    .setContentTitle("Title")
                    .setContentText(
                            "Text").setSmallIcon(R.drawable.ic_launcher)
                    .setContentIntent(pending).setWhen(when).setAutoCancel(true)
                    .build();
        }
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notification.defaults |= Notification.DEFAULT_SOUND;
    nm.notify(0, notification);
    

    Or you can Download direct tutorial from here : http://www.demoadda.com/demo/android/how-to-create-local-notification-notification-manager-demo-with-example-android-source-code_26

    0 讨论(0)
  • 2021-02-05 21:49

    If you are using Android 5.0 > it became a lot easier, functionallity changed, but you can use the same code.

    //Some Vars
    public static final int NOTIFICATION_ID = 1; //this can be any int
    
    
    //Building the Notification
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    builder.setSmallIcon(R.drawable.ic_stat_notification);
    builder.setContentTitle("BasicNotifications Sample");
    builder.setContentText("Time to learn about notifications!");
    
    NotificationManager notificationManager = (NotificationManager) getSystemService(
                NOTIFICATION_SERVICE);
    notificationManager.notify(NOTIFICATION_ID, builder.build());
    

    Make sure you are in an application context, if not you may need to pass the context and change your sourcecode as follows

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
    ...
    ..
    .
    
    NotificationManager notificationManager = (NotificationManager) context.getSystemService(
                context.NOTIFICATION_SERVICE);
    

    You can see the full-source-code at: https://github.com/googlesamples/android-BasicNotifications/blob/master/Application/src/main/java/com/example/android/basicnotifications/MainActivity.java#L73

    0 讨论(0)
  • 2021-02-05 21:54

    Here is code

     Intent intent = new Intent(this, MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
                    PendingIntent.FLAG_ONE_SHOT);
    
            Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle("Push Notification")
                    .setContentText(messageBody)
                    .setAutoCancel(true)
                    .setSound(defaultSoundUri)
                    .setContentIntent(pendingIntent);
    
            NotificationManager notificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    
            notificationManager.notify(0, notificationBuilder.build());
    

    Here if you want notifications that don't go away when clicked in Android? so set

    setAutoCancel(false);
    
    0 讨论(0)
  • 2021-02-05 21:59

    You should read the whole things not just a part, buddy. Please re-read carefully step-by-step.

    // this
    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
    
    int icon = R.drawable.icon4;        
    CharSequence tickerText = "Hello"; // ticker-text
    long when = System.currentTimeMillis();         
    Context context = getApplicationContext();     
    CharSequence contentTitle = "Hello";  
    CharSequence contentText = "Hello";      
    Intent notificationIntent = new Intent(this, Example.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
    Notification notification = new Notification(icon, tickerText, when);
    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
    
    // and this
    private static final int HELLO_ID = 1;
    mNotificationManager.notify(HELLO_ID, notification);
    
    0 讨论(0)
  • 2021-02-05 22:12
     if (android.os.Build.VERSION.SDK_INT>16)
        {
            notificationManager.notify(5, notification.build());
        }else
        {
            notificationManager.notify(5, notification.getNotification());
        }
    

    To work in android.os.Build.VERSION.SDK_INT<16 keep in mind to do some changes

    0 讨论(0)
提交回复
热议问题