通过服务启动消息通知

37、Android开发:通知、消息推送、闹钟与服务的使用指南 本文详细介绍了Android开发中的核心功能,包括通知、消息推送、闹钟和服务的使用方法。内容涵盖如何通过通知提升用户体验、使用Firebase Cloud Messaging进行消息推送、通过闹钟触发特定时间操作,以及服务的类型和应用场景。同时,结合地震监测应用和综合示例,展示了这些功能的实际应用。适合希望提升Android应用功能性和交互性的开发者参考。 阅读详情

在Android实例代码中,一个通过服务来启动消息通知的damo,代码比较简单


public class NotifyService extends Service {

private ConditionVariable mCondition;//控制消息线程

private NotificationManager mNN;//消息管理器

@Override
public void onCreate() {
mNN = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

//启动线程运行服务,服务正常运行的过程中,主线程不会被阻止
Thread mThread = new Thread(mTask, "NotifyService");
mCondition = new ConditionVariable(false);
mThread.start();
}

@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return mBinder;
}

private Runnable mTask = new Runnable() {


@Override
public void run() {
showNotification(R.drawable.stat_neutral, R.string.hello_world);
mCondition.block(1000* 10);
NotifyService.this.stopSelf();

}
};

private final IBinder mBinder = new Binder();


private void showNotification(int moodId, int textId){
CharSequence text = getText(textId);

Notification notification = new Notification(moodId,text, System.currentTimeMillis());

//PendingIntent 用户点击消息框时启动对应的activity
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), 0);
//对消息通知栏设置信息
notification.setLatestEventInfo(this, "你好", text, contentIntent);
//发送消息
//第一个参数是消息的特殊标示,在销毁时使用
mNN.notify(1000, notification);
}
@Override
public void onDestroy() {
mNN.cancel(1000);
mCondition.open();
}

}



public class MainActivity extends Activity {
private Button start, stop;



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
start = (Button) findViewById(R.id.start);
stop = (Button) findViewById(R.id.stop);
start.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
startService(new Intent(MainActivity.this, NotifyService.class));
}
});
stop.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
stopService(new Intent(MainActivity.this, NotifyService.class));
}
});
}
}

Service实现通知,判断通知栏是否已打开 立即下载

相关推荐

NotificationDemoWPF自定义通知窗体样式

资源分竟然不能设置为0,辛苦大家了。 想免积分下载的移步:http://blog.youkuaiyun.com/catshitone/article/details/75089069

Android8.0之后Service 启动前台服务并弹出通知

Android8.0之后Service的官方限制 改为启动前台服务并弹出通知。

hjqjl的博客 2869

WPF通知功能

WPF通知功能

服务Service_绑定服务bindService_通知栏Notification

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.youkuaiyun.com/weixin_40790006/article/details/79934324服务:实现通知栏package com.example.f405.servicetest.utils; import android.app.Notification; import android.app.Pending...

weixin_40790006的博客 2181

MuJoCo新手必看:5分钟搞定你的第一个机器人仿真(附Python代码)

本文为零基础新手提供了一份详尽的MuJoCo物理仿真引擎入门指南。从环境搭建、MJCF模型文件解析,到编写Python控制代码,手把手教你5分钟内创建并运行第一个机器人仿真。内容涵盖双摆模型控制与自定义四轮小车构建,帮助你快速掌握这一高性能开源工具,迈出机器人学与强化学习仿真的第一步。

weixin_29032489的博客 654

电源完整性之Cadence Sigrity Power DC_IR_Drop仿真

之前和大家分享过电源完整性之仿真设计原理链接: link.今天接着上一篇文章总结一下电源直流压降的的仿真操作流程及一些simulation中的设置参数,用到的时候Cadence Sigrity 中的Power DC组件,下面开始享受仿真的快乐吧: 1.仿真模式选择与文件导入 选择Cadence Sigrity下的Power DC组件,然后先择licence,最后就可以打开我们之前转化好的.SPD文件。操作如下图: 2.设置层叠信息和过孔焊盘参数 层叠信息:每层的介质厚度、材料、介电常数、介质损耗角等,如

刘小同学的博客 1万+

WPF-- WPF命令和通知及MVVM概述

WPF中MVVM模式以及MVVM模式实时更新的学习

Fourglsl的博客 1241

智能优化算法-北方苍鹰优化算法(NGO)(附源码)

北方苍鹰优化算法 (Northern Goshawk Optimizer, NGO) 是一种基于群体智能的元启发式优化算法,它模拟了北方苍鹰(Northern Goshawk)的捕食行为、领地行为以及社交互动,用于解决复杂的优化问题。总之,NGO作为一种新颖的优化算法,在处理复杂优化问题方面展现出了潜力。随着进一步的研究和应用,NGO有望成为解决实际问题的有效工具。

w971656545的博客 1360

通知与服务——服务Service——服务的启动和停止

服务是在后台默默运行着的Android组件,它与生命周期有关的方法说明如下: onCreate:创建服务。 onStart:开始服务,Android 2.0以下版本使用,现已废弃。 onStartCommand:开始服务,Android 2.0及以上版本使用。 onDestroy:销毁服务。 onBind:绑定服务。 onUnbind:解除绑定。返回值为true表示允许再次绑定,之后再绑定服务...

小白龙白龙马的博客 713

告别玄学调试:手把手教你读懂全志芯片的sys_config.fex配置文件(以i2c配置为例)

本文深入解析全志芯片的sys_config.fex配置文件,以I2C设备驱动为例,详细讲解从引脚定义到驱动加载的全过程。通过实战案例和高级调试技巧,帮助开发者快速掌握硬件配置与内核驱动的联动机制,提升开发效率。

weixin_33737134的博客 418

从模拟到实战:移远EC800M单片机MQTT接入OneNet全流程解析

本文详细解析了移远EC800M单片机通过MQTT协议接入OneNet平台的全流程,涵盖环境准备、模拟设备搭建、硬件迁移、数据交互调试及性能优化等关键步骤。针对常见问题如AT指令缓冲区溢出、心跳间隔设置等提供实战解决方案,帮助开发者高效实现物联网设备稳定接入。

weixin_29215815的博客 430

App消息通知机制

有人说,程序员很安静,但我不完全同意,程序员的聒噪,是藏在代码后面,是藏在程序后面。 这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。 1.消息推送机制 服务器器端需要变被动为主动,通知客户一些开发商认为重要的信息,无论应用程序是

iamcx333的专栏 1526

Android影像系统架构专家面试指南

传音控股招聘影像系统架构专家,要求8年以上开发经验,5年架构设计经验,精通Android Camera开发及性能优化。该职位需负责手机影像软件架构设计、技术选型及跨平台适配,重点解决"快稳省"体验优化。面试评估聚焦三大维度:技术方面考察HAL层架构设计、多帧合成优化等能力;系统开发关注低光降噪等场景的算力平衡;团队管理侧重跨部门协作与项目交付。候选人需展现对CamX-CHI等架构的深入理解,具备量化分析性能指标的能力,并能主导旗舰机影像项目全周期落地。

郑伟强dev的专栏 938

Android通知栏前台服务

一、前台服务的简单介绍 前台服务是那些被认为用户知道且在系统内存不足的时候不允许系统杀死的服务。前台服务必须给状态栏提供一个通知,它被放到正在运行(Ongoing)标题之下——这就意味着通知只有在这个服务被终止或从前台主动移除通知后才能被解除。 最常见的表现形式就是音乐播放服务,应用程序后台运行时,用户可以通过通知栏,知道当前播放内容,并进行暂停、继续、切歌等相关操作。 二、为什么使用前台服务...

nianlun1的博客 1025

如何通过Davinci Configurator来新增一个BswM仲裁规则

详细介绍如何通过Davinci Configurator来新增一个BswM仲裁规则。

initiallizer的博客 770

【制作100个unity游戏之22】3DRPG游戏开发07——其他详细的设计

我们会有有很多单例,如果每个单例都去写会很麻烦,所以我们定义泛型单例模式 Singleton,我们将所有的单例都继承这个泛型单例,就省略很多重复的工作定义一个GameManager类,继承Singleton,控制整个游戏的进度,比如如果主角死了,广播,游戏结束调用。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2576

android-整理通知、广播、服务的相关知识点

通知 消息推送,提醒 基本步骤 练习 1 2响应 消除通知 3声音 4震动 5LED灯 pendingIntent flag取值(一般选择第四个) Intent 与 PendingIntent 的区别 task 自定义notification toast 广播 接受系统广播,动态检测网络环境 接收系统广播,静态注册开机启动 用上一个方法实现,只需盖一个地方 动态注册,销毁 多个接收器接收 总结 强制下线

HRBU_17042132的博客 354

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

通知

通知 一.基本概念 1. ios提供了两种通知机制,本地通知,推送通知。 2.本地通知和推送通知可以让不在前端运行的程序告知用户程序内部发生的信息。 3.通知的展示:播放声音,更新应用程序图标上的数字,显示一个横幅。 二.本地通知 1.通常使用本地通知,是在应用程序退出到后台调度的。应用程序退出后台之后,会在内存中驻留10分钟的时间,过了10分钟,系统会自动清理应用程序。 2.在进入...

weixin_30649641的博客 99

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上门家政系统开发之“消息通知与互动” 功能解析

以下内容是上门家政系统开发之 “消息通知与互动” 功能介绍,当用户在系统里完成挑选家政服务项目、定制具体要求以及预约好时间这些操作后,系统的消息通知与互动功能就开始启动了。,它就像一条无形的纽带,串联起整个家政服务流程,让各方沟通起来顺畅又便捷,为大家。

zhousongsky的博客 607

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

frp篇---frp-notify + Gotify 实现 FRP 用户上线通知

frp-notify + Gotify 实现 FRP 用户上线通知

心惠天意 2034

消息通知系统详解4---整合Netty和WebSocket

目录修改配置实现Netty的整合整合分析实现整合 我们需要使用netty对接websocket连接,实现双向通信,这一步需要有服务端的netty程序,用来处理客户端的websocket连接操作,例如建立连接,断开连接,收发数据等。 修改配置 修改消息通知微服务模块tensquare_notice的pom文件,添加下面的dependency依赖 <dependency> &l...

u014526891的博客 1万+

Android 通知栏消息

通知栏消息是Android的一个最成功的发明,的确给用户带来很好的体验。 主要用到的类有NotificationManager。是用来管理提醒的。 还有PendingIntent用来指定点击后跳转的。 现在公司的需求就是:需要检查服务端有没有消息要推送,每次打开软件都去检查太消耗了,所以我的策略是每天第一次打开软件时去检测,这一天后来再打开软件就不检测了。 看代码吧: /** * 是

Crazy Android 4515

群晖 nas 自建 ntfy 通知服务(梦寐以求)

本文详细介绍了群晖NAS上通过Docker部署实现ntfy服务器的全过程,保姆级操作,完全可以实现自己的ntfy服务器,应用在很多消息通知的场景。可以实现任何电脑或移动设备可以给任何电脑或者移动设备发送消息通知,只要有网络就可以,使用非常简单。

sensor_WU 博客 4995

Android Service---给用户发送通知

服务一旦运行,就能够使用广播通知(Toast Notifications)或状态栏通知(Status Bar Notifications)来通知用户。 广播通知是一个在当前窗口表面短暂显示的一个消息,而状态栏消息会在状态栏中提供一个带有消息的图标,用户能够选择这个图标来启动一个动作(如启动一个Activity)。 通常,状态栏通知是用来告知后台任务完成的最好的技术(如文件下载完成),并...

逍遥客的博客 724

Android 使用消息通知 不显示可能的原因

通知的安卓代码: public class MyService extends Service { … public void onCreate() { super.onCreate(); Log.d(“Myservice”, "onCreate execute "); Intent intent = new Intent(this,MainActivity.class); PendingIntent pi = PendingIntent.getActivity(this,0,intent,0); Noti

Snake_Hello的博客 2086
上一篇: android.view.WindowManager$BadTokenException & Android – Displaying Dialogs From Background Threads
下一篇: WebView常用方法
coderPlus
博客等级 码龄12年 1粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值