Android 监听开机广播启动服务 动态注册时间变化监听广播

开机广播权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

开机广播 注册

 <receiver android:name="com.stone.receiver.BootedReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>

开机广播

public class BootedReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		context.startService(new Intent(context, TimeService.class));
	}

}

时间服务

//服务 用于  注册 监听时间变化、设置的广播   时间变化广播只能动态注册
public class TimeService extends Service {

	//监听时间变化的 这个receiver只能动态创建
	private TimeTickReceiver mTickReceiver;
	private IntentFilter mFilter;

	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}

	@Override
	public void onCreate() {
		super.onCreate();
		mFilter = new IntentFilter();
		mFilter.addAction(Intent.ACTION_TIME_TICK); //每分钟变化的action
		mFilter.addAction(Intent.ACTION_TIME_CHANGED); //设置了系统时间的action
		mTickReceiver = new TimeTickReceiver();
		registerReceiver(mTickReceiver, mFilter);
	}

	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		System.out.println("启动了服务");
		return Service.START_STICKY;
	}

	@Override
	public void onDestroy() {
		super.onDestroy();
		unregisterReceiver(mTickReceiver);
	}
}

监听时间改变、设置 广播

public class TimeTickReceiver extends BroadcastReceiver {

	private boolean flag;

	@Override
	public void onReceive(Context context, Intent intent) {
//		System.out.println("时间变了" + intent.getAction());

		if (intent.getAction().equals(Intent.ACTION_TIME_TICK)) {
			 	//每过一分钟 触发
			} 

		} else {
			/*
			 * 系统bug??
			 * android.intent.action.TIME_SET  当调整系统时间后 这个action会收到两次
			 */
			if (flag) {
				try {
					AlarmUtil.startAlarm(context);
				} catch (DbException e) {
					e.printStackTrace();
				}
				flag = false; //第二次置false
			} else {
				flag = true; //第一次置true
			}

		}

	}

}
时间: 2024-10-02 11:08:47

Android 监听开机广播启动服务 动态注册时间变化监听广播的相关文章

利用服务动态注册广播

在ContextWrapper类中有一个方法registerReceiver(BroadcastReceiver receiver, IntentFilter filter) 该方法可以实现动态注册广播接受者 receiver = new ScreemRecevicer(); IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.SCREEN_OFF"); filter.add

RPC原来就是socket——RPC框架到dubbo的服务动态注册,服务路由,负载均衡演化

序:RPC就是使用socket告诉服务端我要调你的哪一个类的哪一个方法然后获得处理的结果.服务注册和路由就是借助第三方存储介质存储服务信息让服务消费者调用. RPC即远程过程调用,它的实现方式有很多,比如webservice等.框架调多了,烦了,没激情了,我们就该问自己,这些框架的作用到底是什么,来找回当初的激情. 一般来说,我们写的系统就是一个单机系统,一个web服务器一个数据库服务,但是当这单台服务器的处理能力受硬件成本的限制,是不能无限的提升处理性能的.这个时候我们使用RPC将原来的本地调

自己动手写RPC框架到dubbo的服务动态注册,服务路由,负载均衡功能实现

RPC即远程过程调用,它的实现方式有很多,比如webservice等.框架调多了,烦了,没激情了,我们就该问自己,这些框架的作用到底是什么,来找回当初的激情. 一般来说,我们写的系统就是一个单机系统,一个web服务器一个数据库服务,但是当这单台服务器的处理能力受硬件成本的限制,是不能无限的提升处理性能的.这个时候我们使用RPC将原来的本地调用转变为调用远端的服务器上的方法,给系统的处理能力和吞吐量带来了提升. RPC的实现包括客户端和服务端,即服务的调用方和服务的提供方.服务调用方发送rpc请求

Android学习笔记(十一)BroadcastReceiver动态注册、注销示例

在上一篇博文中简单介绍了一下BroadcastReceiver的相关知识点,本篇举一个在代码中动态的注册.注销BroadcastReceiver的栗子. 1.首先创建一个MyReceiver并继承BroadcastReceiver,既然要动态注册该receiver的话,就无需在AndroidManifest.xml中配置它了: 1 public class MyReceiver extends BroadcastReceiver { 2 public static final String AC

Android 编程之天气预报闹钟启动服务设置界面加载--4

真个application讲的已经差不多了,在说完这一篇之后,我会上传源码到资源,喜欢的可以下载和学习,今天主讲闹钟启动设置,设置页面的加载 在Android系统中,闹钟和唤醒功能都是由Alarm Manager Service控制并管理的.我们所熟悉的RTC闹钟以及定时器都和它有莫大的关系.为了便于称呼,我常常也把这个service简称为ALMS.         另外,ALMS还提供了一个AlarmManager辅助类.在实际的代码中,应用程序一般都是通过这个辅助类来和ALMS打交道的.就代

android 上手维修设备和推断启动服务

下载链接:http://download.csdn.net/detail/a123demi/7511823 我们经常在开发的时候,通过获取系统已启动的服务来推断该server是否还须要再启动. 而本文将介绍android设备中已启动的服务,并推断某一服务是启动 1.依据ACTIVITY_SERVICE获取系统服务 activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 2.获取系统中正在执行的服务 runni

默认开机启动;通过Broadcastreceiver广播监听开机启动,实现&quot;没有activity&quot;的自启服务或者自启应用程序。

一.首先介绍一下如何开机启动: 第一种:  监控RECEIVE_BOOT_COMPLETED,即开机启动事件 第二种: 监控sd卡mount事件  开机总会扫描sd卡吧? 监控sd卡事件也有类似开机启动效果,特别app安装在sd卡的情况下有些os是抓取不到RECEIVE_BOOT_COMPLETED 第三种: android:installLocation="internalOnly", 限制app的安装位置,使其能抓取到RECEIVE_BOOT_COMPLETED 我们也可以同时使用

Oracle监听静态注册和动态注册

静态注册和动态注册总结 一.什么是注册? 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样.在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务(无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务.)相当于是这样:在数据库服务器和客户端之间有一监听程序(Listener),在监听程序中,会记录相应数据库对应的服务名(一个

go微服务框架go-micro深度学习(三) Registry服务的注册和发现

服务的注册与发现是微服务必不可少的功能,这样系统才能有更高的性能,更高的可用性.go-micro框架的服务发现有自己能用的接口Registry.只要实现这个接口就可以定制自己的服务注册和发现. go-micro在客户端做的负载,典型的Balancing-aware Client模式. 服务端把服务的地址信息保存到Registry, 然后定时的心跳检查,或者定时的重新注册服务.客户端监听Registry,最好是把服务信息保存到本地,监听服务的变动,更新缓存.当调用服务端的接口是时,根据客户端的服务