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
- Android自定义消息推送
- Android极光推送自定义消息
- Android- Notification消息推送和自定义消息推送
- Android之极光推送发送自定义消息
- Android 极光推送获取自定义消息
- Android之极光推送发送自定义消息
- Android 使用极光推送自定义消息推送效果
- Android 使用极光推送消息详细介绍之自定义消息
- 自定义消息推送
- 自定义推送消息
- Android 使用极光推送自定义消息打造个性的消息推送效果
- Android 自定义锁屏 监听系统消息推送
- android项目实战-快速集成极光推送自定义消息
- Android消息推送,极光推送
- 极光推送(二):自定义推送消息
- 极光推送—自定义消息
- android消息推送-XMPP
- Android中的消息推送
- 一些sql面试题
- 输入url到页面返回的全过程
- 构造函数和析构函数的使用
- Project Euler :Problem 54 Poker hands
- 网页中引用优酷播放器并使其被遮罩层遮住
- Android自定义消息推送
- iOS开发笔记--多手势事件
- 关于UGUI RectTransform的几个参数的获取和修改(待补充)
- linux c编程中调用 shell 命令
- mongodb aggregate 级联查询
- Hibernate annotation配置方式的MappedBy使用详解
- 65Valid Number
- 【Objective-C Runtime】Objective-C Runtime文章收集
- ”无法启动程序“..\proj.win32\Debug.win32\xxx.dll