如何在Android中获知屏幕打开或者关闭
2014-05-06 13:54
453 查看
在有些Android应用中需要在屏幕打开或者关闭的时候进行一些处理,下面介绍一个在android应用程序中捕获屏幕打开或者关闭动作的方法:
首先创建ScreenReceiver类,该类继承自BroadcastReceiver,并实现其onReceive方法,在该类当中可判断屏幕事件的类型,并添加相关的代码。
然后在Activity中注册BroadcastReceiver并设置其IntenFilter
如果需要在service当中捕获屏幕打开或者关闭事件,可参照以下方法:
对应的service样例代码如下:
首先创建ScreenReceiver类,该类继承自BroadcastReceiver,并实现其onReceive方法,在该类当中可判断屏幕事件的类型,并添加相关的代码。
publicclassScreenReceiverextendsBroadcastReceiver{
@Override
publicvoidonReceive(Contextcontext,Intentintent){
if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF)){
//dowhateveryouneedtodohere
}elseif(intent.getAction().equals(Intent.ACTION_SCREEN_ON)){
//anddowhateveryouneedtodohere
}
}
}
然后在Activity中注册BroadcastReceiver并设置其IntenFilter
publicclassExampleActivityextendsActivity{
@Override
protectedvoidonCreate(){
//initializereceiver
IntentFilterfilter=newIntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceivermReceiver=newScreenReceiver();
registerReceiver(mReceiver,filter);
//yourcode
}
//yourcode}[/code]
如果需要在service当中捕获屏幕打开或者关闭事件,可参照以下方法:
publicclassScreenReceiverextendsBroadcastReceiver{
privatebooleanscreenOff;
@Override
publicvoidonReceive(Contextcontext,Intentintent){
if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF)){
screenOff=true;
}elseif(intent.getAction().equals(Intent.ACTION_SCREEN_ON)){
screenOff=false;
}
Intenti=newIntent(context,UpdateService.class);
i.putExtra("screen_state",screenOff);
context.startService(i);
}
}
对应的service样例代码如下:
publicstaticclassUpdateServiceextendsService{
@Override
publicvoidonCreate(){
super.onCreate();
//registerreceiverthathandlesscreenonandscreenofflogic
IntentFilterfilter=newIntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceivermReceiver=newScreenReceiver();
registerReceiver(mReceiver,filter);
}
@Override
publicvoidonStart(Intentintent,intstartId){
booleanscreenOn=intent.getBooleanExtra("screen_state",false);
if(!screenOn){
//yourcode
}else{
//yourcode
}
}
}
相关文章推荐
- Android 在程序中关闭和打开屏幕
- Android中如何打开或关闭GPS
- Android中判断app何时是打开或者关闭的技术研究
- Android设备关闭或打开屏幕时调用的函数
- android/iPhone:如何从browser直接打开应用程序或者打开应用商店(如果没有应用程序)
- 控制屏幕触摸功能打开或者关闭
- 【Android】如何调节屏幕亮度,关闭屏幕
- 【Android】如何调节屏幕亮度,关闭屏幕
- Android 判断app何时是打开或者关闭的技术研究
- Android 如何 ListView 判断滚动到最顶部或者底部 ,首行距离屏幕边缘距离
- android监听屏幕打开关闭广播无响应的情况
- android如何实现实时在屏幕上找图或者找颜色块的功能
- android 如何在activity中控制屏幕点亮与关闭
- win8如何关闭开始中打开的程序(关闭开始屏幕中打开的应用)
- android/iPhone:如何从browser直接打开应用程序或者打开应用商店(如果没有应用程序)
- Android 屏幕亮度调节(2.0以后出现亮度自动调节)如何开启、关闭亮度自动调节
- Android打开或者关闭软键盘的解决方案
- Android 在程序中关闭和打开屏幕
- android屏幕全屏下判断软键盘打开关闭,软键盘打开关闭不好用
- 打开关闭android如何默认打开小区广播?