Android自定义消息推送

来源:互联网 发布:炽焰帝国2激活码淘宝 编辑:程序博客网 时间:2024/06/08 10:44

啥也不说看图:


点击后效果:



代码:主方法:

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() {@Overridepublic 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() {@Overridepublic void onClick(View arg0) {  Intent intent = new Intent();        // 设置Action属性        intent.setAction("com.text.ac.action.MY_SERVICE");        // 关闭该ServicestopService(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;    }         @Overridepublic 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();                }            }        }    }@Overridepublic void onDestroy() {          //  System.exit(0);            //或者,二选一,推荐使用System.exit(0),这样进程退出的更干净            messageThread.isRunning = false;            super.onDestroy();}    /**     * 这里以此方法为服务器Demo,仅作示例    * @return 返回服务器要推送的消息,否则如果为空的话,不推送     */    public String getServerMessage(){        return "不错哦";    }}

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



2 0
原创粉丝点击