Android实现系统消息推送
时间:2022-07-27
本文章向大家介绍Android实现系统消息推送,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
现在好多应用都接入了推送功能,市面上也有很多关于推送的第三方,例如极光等等,那么我们需求不大,接入极光会造成很大的资源浪费,下面我们来看下利用android服务进行本地推送消息。
1.注册一个Service
import android.annotation.TargetApi;
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.Build;
import android.os.IBinder;
import java.util.Calendar;
/**
* Created by 70883 on 2017/8/10.
*/
public class PushSmsService extends Service {
private NotificationManager manager;
private PendingIntent pi;
private MyThread myThread;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
myThread = new MyThread();
myThread.start();
super.onCreate();
}
@Override
public void onDestroy() {
super.onDestroy();
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
private void notification() {
// 获取系统的通知管理器
manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Intent intent = new Intent(getApplicationContext(),
MainActivity.class);
pi = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);
Notification notification = new Notification.Builder(getApplicationContext())
.setAutoCancel(true)
.setContentText("工作在忙,也要吃饭哦")
.setContentIntent(pi)
.setSmallIcon(R.mipmap.ic_icon)
.setWhen(System.currentTimeMillis())
.build();
notification.defaults = Notification.DEFAULT_ALL; // 使用默认设置,比如铃声、震动、闪灯
notification.flags = Notification.FLAG_AUTO_CANCEL; // 但用户点击消息后,消息自动在通知栏自动消失
notification.flags |= Notification.FLAG_NO_CLEAR;// 点击通知栏的删除,消息不会依然不会被删除
manager.notify(0, notification);
}
private class MyThread extends Thread{
private Calendar c ;
@Override
public void run() {
while (true){
c = Calendar.getInstance();
if(c.get(Calendar.HOUR_OF_DAY) == 15){
try {
notification();
sleep(1000*60*60);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}
2.在AndroidMan中注册
<service android:name=".ui.Service.PushSmsService" </service
3.由于我是需要全局应用就在Application中进行启动了
public void startService() {
Intent intent = new Intent(this, PushSmsService.class);
// 启动服务
startService(intent);
}
4.也可以配合服务端使用,定时推送消息
以上就是本文的全部内容,希望对大家的学习有所帮助。
- Vjios P1736 铺地毯【暴力,思维】
- Vijos P1116 一元三次方程求解【多解,暴力,二分】
- Python Selenium设计模式-POM
- [快学Python3]HTTP处理 - urllib模块
- Vijos P1786 质因数分解【暴力】
- 模仿百度新闻列表底部的“加载更多”
- Vijos P1035 贪婪的送礼者【模拟】
- Vijos P1114 FBI树【DFS模拟,二叉树入门】
- Vijos P1448 校门外的树【多解,线段树,树状数组,括号序列法+暴力优化】
- 撞库扫号防范
- 分享一个 HTTPS A+ 的 nginx 配置
- Vijos P1785 同学排序【模拟】
- Vijos P1784 数字统计【模拟】
- 网络安全黑暗森林法则:2015 ISC 深度回顾
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 小程序顶部导航栏,可滑动,可动态选中放大
- 小程序不同页面的异步回调,callback和promise的使用讲解
- java入门019~springboot批量导入excel数据到mysql
- Java点餐系统和点餐小程序新加微信消息推送功能
- Java点餐系统和点餐小程序新加排号等位功能
- IDEA上给文件添加姓名,日期,版本号
- matlab机器人工具箱安装与卸载
- 浅谈Linux下修改/设置环境变量JAVA_HOME的方法
- Linux服务器配置多个svn仓库流程详解
- linux服务器显卡崩溃解决方案
- LINUX查看进程的4种方法(小结)
- Linux下的多线程编程实例解析
- CentOS使用expect批量远程执行脚本和命令
- Centos8最小化部署安装OpenStack Ussuri的详细教程
- 详解Xshell 常见问题及相关配置