java android 消息推送_Android (Notification)消息推送机制

packagecom.example.notificationservice;importandroid.app.Notification;importandroid.app.NotificationManager;importandroid.app.PendingIntent;importandroid.app.Service;importandroid.content.Context;importandroid.content.Intent;importandroid.os.IBinder;public class NotificationService extendsService {//获取消息线程

private MessageThread messageThread = null;//点击查看

private Intent messageIntent = null;private PendingIntent messagePendingIntent = null;//通知栏消息

private int messageNotificationID = 1000;private Notification messageNotification = null;private NotificationManager messageNotificatioManager = null;publicIBinder onBind(Intent intent) {return null;

}

@Overridepublic int onStartCommand(Intent intent, int flags, intstartId) {//初始化

messageNotification = newNotification();

messageNotification.icon=R.drawable.ic_launcher;

messageNotification.tickerText= "新消息";

messageNotification.defaults=Notification.DEFAULT_SOUND;

messageNotificatioManager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

messageIntent= new Intent(this, MainActivity.class);

messagePendingIntent= PendingIntent.getActivity(this, 0,

messageIntent,0);//开启线程

messageThread = newMessageThread();

messageThread.isRunning= true;

messageThread.start();return super.onStartCommand(intent, flags, startId);

}/*** 从服务器端获取消息

**/

class MessageThread extendsThread {//设置是否循环推送

public boolean isRunning = true;public voidrun() {//while (isRunning) {

try{//间隔时间

Thread.sleep(1000);//获取服务器消息

String serverMessage =getServerMessage();if (serverMessage != null && !"".equals(serverMessage)) {//更新通知栏

messageNotification.setLatestEventInfo(

getApplicationContext(),"新消息", "您有新消息。"

+serverMessage, messagePendingIntent);

messageNotificatioManager.notify(messageNotificationID,

messageNotification);//每次通知完,通知ID递增一下,避免消息覆盖掉

messageNotificationID++;

}

}catch(InterruptedException e) {

e.printStackTrace();

}//}

}

}

@Overridepublic voidonDestroy() {//System.exit(0);

messageThread.isRunning = false;super.onDestroy();

}/*** 模拟发送消息

*

*@return返回服务器要推送的消息,否则如果为空的话,不推送*/

publicString getServerMessage() {return "NEWS!";

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值