Android自定义消息推送

啥也不说看图:

点击后效果:

代码:主方法:

package com.text.ac;

import java.util.Calendar;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
 *
 * @author Hardi
 *
 */
public class TextActivity extends Activity {
	Button button;
	Button buttonstop;

	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    button = (Button)findViewById(R.id.button);
    buttonstop=(Button)findViewById(R.id.titlebutton);
    button.setOnClickListener(new OnClickListener() {

		@Override
		public void onClick(View arg0) {
			  Intent intent = new Intent();
		        // 设置Action属性
		        intent.setAction("com.text.ac.action.MY_SERVICE");
		        // 启动该Service
		        startService(intent);
				   //  startService(new Intent(ExTextActivity.this, MessageService.class));

		}
	});
    buttonstop.setOnClickListener(new OnClickListener() {

		@Override
		public void onClick(View arg0) {
			  Intent intent = new Intent();
		        // 设置Action属性
		        intent.setAction("com.text.ac.action.MY_SERVICE");
		        // 关闭该Service
			stopService(intent);

		}
	});
	}

}

写了一个服务:

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.ic_hehe;
	        messageNotification.tickerText = "新消息";
        messageNotification.defaults = Notification.DEFAULT_SOUND;
	        messageNotificatioManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
	        //点击跳转的activity
	        messageIntent = new Intent(this, TextActivity.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,"新消息","您中奖了,500万!"+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 "不错哦";
    }
}

点击运行即可!! demo下载点击

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-17 09:51:21

Android自定义消息推送的相关文章

android极光推送初步了解...

推送可以及时,主动的与用户发起交互 (1)继承jar包,照示例AndroidManifest.xml添加. (2)自定义MyApp继承自Application,在onCreate方法中调用JPushInterface.init(MainActivity.this); 或者在Activity的onCreate中调用. (3)另外,在activity的onResume方法要调用JPushInterface.onResume(this);否则,推送不会出现, 在onPause中调用JPushInter

Android消息推送 SDK 集成指南

使用提示 本文是 Android SDK 标准的集成指南文档. 匹配的 SDK 版本为:r1.8.0及以后版本. 本文随SDK压缩包分发.在你看到本文时,可能当前的版本与本文已经不是很适配.所以建议关注在线文档: 3 分钟快速 Demo(Android):如果您想要快速地测试.感受下极光推送的效果,请参考本文在几分钟内跑通Demo. 极光推送文档网站上,有极光推送相关的所有指南.API.教程等全部的文档.包括本文档的更新版本,都会及时地发布到该网站上. 极光推送问答网站:大家除了文档之外,还有问

Android消息推送:手把手教你集成小米推送

前言 在Android开发中,消息推送功能的使用非常常见. 为了降低开发成本,使用第三方推送是现今较为流行的解决方案. 今天,我将手把手教大家如何在你的应用里集成小米推送 该文档基于小米推送官方Demo,并给出简易推送Demo 看该文档前,请先阅读我写的另外两篇文章: 史上最全解析Android消息推送解决方案 Android推送:第三方消息推送平台详细解析 目录 1. 官方Demo解析 首先,我们先对小米官方的推送Demo进行解析. 请先到官网下载官方Demo和SDK说明文档 1.1 Demo

Android消息推送机制

1.推送方式基础知识: 当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数据,比如<地震应急通>就需要及时获取服务器上最新的地震信息.要获取服务器 上不定时更新的信息一般来说有两种方法,第一种是客户端使用Pull(拉)的方式,隔一段时间就去服务器上获取信息,看是否有更新的信息出现.第二种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上.? 虽然Pull和Push两种方式都能实现获取服务器端更新信息的功能,但是明显来说Push is

Android实现推送方式解决方案【转载地址:http://www.cnblogs.com/hanyonglu/archive/2012/03/04/2378971.html】

本文介绍在Android中实现推送方式的基础知识及相关解决方案.推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息.这种推送功能是好的一面,但是也会经常看到很多推送过来的垃圾信息,这就让我们感到厌烦了,关于这个我们就不能多说什么了,毕竟很多商家要做广告.本文就是来探讨下Android中实现推送功能的一些解决方案,也希望能够起到抛砖引玉的作用.^_^ 1.推送方式基础知识:  在移动互联网时代以前的手机,如果有事情

Android实现推送方式解决方案

Android实现推送方式解决方案 本文介绍在Android中实现推送方式的基础知识及相关解决方案.推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息.这种推送功能是好的一面,但是也会经常看到很多推送过来的垃圾信息,这就让我们感到厌烦了,关于这个我们就不能多说什么了,毕竟很多商家要做广告.本文就是来探讨下Android中实现推送功能的一些解决方案,也希望能够起到抛砖引玉的作用.^_^ 1.推送方式基础知识: 在移

【转】Android实现推送方式解决方案

本文介绍在Android中实现推送方式的基础知识及相关解决方案.推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息.这种推送功能是好的一面,但是也会经常看到很多推送过来的垃圾信息,这就让我们感到厌烦了,关于这个我们就不能多说什么了,毕竟很多商家要做广告.本文就是来探讨下Android中实现推送功能的一些解决方案,也希望能够起到抛砖引玉的作用.^_^ 1.推送方式基础知识:  在移动互联网时代以前的手机,如果有事情

Android消息推送

1.推送方式基础知识:  在移动互联网时代以前的手机,如果有事情发生需要通知用户,则会有一个窗口弹出,将告诉用户正在发生什么事情.可能是未接电话的提示,日历的提醒,或是一封新的彩信.推送功能最早是被用于Email中,用来提示我们新的信息.由于时代的发展和移动互联网的热潮,推送功能更加地普及,已经不再仅仅用在推送邮件了,更多地用在我们的APP中了. 当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数据,比如<地震应急通>就需要及时获取服务器上最新的地震信息.要获取服务器上不定时

【android极光推送】—从客户端到后台,一文通吃

前记 推送原理浅析 平台说明 概念解释 推送的三种实现方式 客户端直接向推送服务方发送Http请求 项目服务器通过Http转发推送请求至推送服务方 项目服务端使用SDK进行功能集成 关于推送的种类概述 android客户端初步实现 集成SDK说明 集成步骤 1下载官方提供的SDK集成包 2手动导入SDK 3在极光的官网创建一个应用 4编写一个MyApplication类初始化SDK 5配置 AndroidManifestxml wampServer服务端配置 配置推送SDK 通过composer