zoukankan      html  css  js  c++  java
  • 消息推送(使用notification来更新显示)

    package com.text.ac;
    
    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.app.Service;
    import android.content.Context;
    import android.content.Intent;
    import android.os.IBinder;
    import android.widget.Toast;
    
    public class MessageService extends Service {     
            //获取消息线程
            private MessageThread messageThread = null;
         
            //点击查看
            private Intent messageIntent = null;
            private PendingIntent messagePendingIntent = null;
         
            //通知栏消息
            private int messageNotificationID = 1000;
            private Notification messageNotification = null;
            private NotificationManager messageNotificatioManager = null;
         
            public IBinder onBind(Intent intent) {
                return null;
            }
             
            @Override
            public void onCreate() {
                 //初始化
                messageNotification = new Notification();
                messageNotification.icon = R.drawable.icon;
                messageNotification.tickerText = "新消息";
                messageNotification.defaults = Notification.DEFAULT_SOUND;
                messageNotificatioManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                //点击跳转的activity
                messageIntent = new Intent(this, ExTextActivity.class);
                messagePendingIntent = PendingIntent.getActivity(this,0,messageIntent,0);
             
                //开启线程
                messageThread = new MessageThread();
                messageThread.isRunning = true;
                messageThread.start();
         Toast.makeText(MessageService.this, "aaaa", Toast.LENGTH_LONG).show();
                super.onCreate();
            }
    
            /**
             * 从服务器端获取消息
             *
         */
            class MessageThread extends Thread{
                //运行状态,下一步骤有大用
                public boolean isRunning = true;
                public void run() {
                    while(isRunning){
                        try {
                            //休息10分钟
                            Thread.sleep(5000);
                            //获取服务器消息
                            String serverMessage = getServerMessage();
                         
                            if(serverMessage!=null&&!"".equals(serverMessage)){
                                //更新通知栏
                                messageNotification.setLatestEventInfo(MessageService.this,"新消息","您中奖了,1个亿!"+serverMessage,messagePendingIntent);
                                messageNotificatioManager.notify(messageNotificationID, messageNotification);
                            //每次通知完,通知ID递增一下,避免消息覆盖掉
                           messageNotificationID++;
                        }
                   } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
            }
            @Override
                public void onDestroy() {
                          //  System.exit(0);
                            //或者,二选一,推荐使用System.exit(0),这样进程退出的更干净
                            messageThread.isRunning = false;
                            super.onDestroy();
                }
        /**
         * 这里以此方法为服务器Demo,仅作示例
        * @return 返回服务器要推送的消息,否则如果为空的话,不推送
         */
        public String getServerMessage(){
            return "YES!";
        }
    }
  • 相关阅读:
    164-268. 丢失的数字
    163-20. 有效的括号
    Sword 30
    Sword 29
    Sword 27
    Sword 25
    Sword 24
    Sword 22
    Sword 21
    Sword 18
  • 原文地址:https://www.cnblogs.com/ct732003684/p/2944569.html
Copyright © 2011-2022 走看看