732003684

导航

消息推送(使用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!";
    }
}

 

posted on 2013-03-05 16:16  732003684  阅读(577)  评论(0编辑  收藏  举报