android休眠监听
A. 在android中怎样给整个页面设置监听事件
您可以类似这样,先实例化子页面中的Button控件,然后将实例化后的控件绑定监听事件 View view=LayoutInflater.from(context).inflate(R.layout.abc_action_bar_view_list_nav_layout,null); Button button= (Button) view.findViewById(R.id.action_bar); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //写上点击后要执行的事件 } }); 当然了,您要在不同页面实现不同的功能的话,您可以将以上代码写在viewPager.setOnPageChangeListener的滚动回调方法当中进行页面滚动的判断,从而执行不同的点击事件。希望能帮到您,如果还有什么问题,欢迎您继续追问。谢谢。
B. android 是怎样监听事件
监听事件,直接新建一个匿名的监听接口,类似于下面这样的:
b1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intet = new Intent(MainActivity.this,seekbar.class);
startActivity(intet);
//finish();
}
});
C. 如何控制android 设备休眠 ,禁用休眠,设置等待时间
到设置~显示~休眠下选择合适的时间甚至取消休眠。
D. Android屏幕休眠时,Runnable被暂停了怎么办
1. 给View设置keepScreenOn属性,使屏幕不灭
2. 使用WakeLock,保持程序运行状态
3. 屏幕灭和亮都会有广播消息,监听广播做时间处理
E. android 怎么监听电源键事件
如果要执行长按事件的话,必须先执行event.startTracking(); 然后onKeyLongPress(int, KeyEvent)才能被调到。更多内容 欢迎访问:
是说在dispatchkeyevent里先执行event.startTracking(); 然后才super.dispatchKeyE……
你可以这样子做:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
if(keyCode == KeyEvent.KEYCODE_POWER){
event.startTracking();
}
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
return super.onKeyLongPress(keyCode, event);
}
这样子你的onKeyLongPress方法就会被执行到了。
F. android系统休眠关闭了哪些功能
Android的几种不同的休眠模式
如果不进行特别的设置,Android会在一定时间后屏幕变暗,在屏幕变暗后一定时间内,约几分钟,CPU也会休眠,大多数的程序都会停止运行,从而节省电量。但你可以在代码中通过对Powmanager API的调用来设置不同的休眠模式。
Flag Value CPU Screen Keyboard
PARTIAL_WAKE_LOCK On* Off Off
SCREEN_DIM_WAKE_LOCK On Dim Off
SCREEN_BRIGHT_WAKE_LOCK On Bright Off
FULL_WAKE_LOCK On Bright Bright
如上表,最高等级的休眠是屏幕,键盘等,cpu都全部休眠。可以设置不同的模式,让其产生不同的休眠,比如让cpu保持运行。
G. android开发中如何捕捉自动休眠灰屏的这个事件
捕捉自动休眠灰屏的事件,可以通过监听系统的广播获得当前手机屏幕的状态,广播需要在注册文件中注册,具体的实现代码如下:
public class ScreenListener {
private Context mContext;
private ScreenBroadcastReceiver mScreenReceiver;
private ScreenStateListener mScreenStateListener;
public ScreenListener(Context context) {
mContext = context;
mScreenReceiver = new ScreenBroadcastReceiver();
}
/**
* screen状态广播接收者
*/
private class ScreenBroadcastReceiver extends BroadcastReceiver {
private String action = null;
@Override
public void onReceive(Context context, Intent intent) {
action = intent.getAction();
if (Intent.ACTION_SCREEN_ON.equals(action)) { // 开屏
mScreenStateListener.onScreenOn();
} else if (Intent.ACTION_SCREEN_OFF.equals(action)) { // 锁屏
mScreenStateListener.onScreenOff();
} else if (Intent.ACTION_USER_PRESENT.equals(action)) { // 解锁
mScreenStateListener.onUserPresent();
}
}
}
/**
* 开始监听screen状态
*
* @param listener
*/
public void begin(ScreenStateListener listener) {
mScreenStateListener = listener;
registerListener();
getScreenState();
}
/**
* 获取screen状态
*/
private void getScreenState() {
PowerManager manager = (PowerManager) mContext
.getSystemService(Context.POWER_SERVICE);
if (manager.isScreenOn()) {
if (mScreenStateListener != null) {
mScreenStateListener.onScreenOn();
}
} else {
if (mScreenStateListener != null) {
mScreenStateListener.onScreenOff();
}
}
}
/**
* 停止screen状态监听
*/
public void unregisterListener() {
mContext.unregisterReceiver(mScreenReceiver);
}
/**
* 启动screen状态广播接收器
*/
private void registerListener() {
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_USER_PRESENT);
mContext.registerReceiver(mScreenReceiver, filter);
}
public interface ScreenStateListener {// 返回给调用者屏幕状态信息
public void onScreenOn();
public void onScreenOff();
public void onUserPresent();
}
}
在上面的代码中,用到了动态注册广播,在需要监听屏幕状态的activity中,当不需要监听的时候,如activity finish的时候,使用unregisterListener解除广播监听;
下面是在Activity中调用;
ScreenListener l = new ScreenListener(this);
l.begin(new ScreenStateListener() {
@Override
public void onUserPresent() {
Log.e("onUserPresent", "onUserPresent");
}
@Override
public void onScreenOn() {
Log.e("onScreenOn", "onScreenOn");
}
@Override
public void onScreenOff() {
Log.e("onScreenOff", "onScreenOff");
}
});
通过以上步骤即实现了对屏幕状态的监听.
H. 怎么设置安卓手机休眠状态下能接收网易新闻消息!!
1.进入网易新闻客户端----设置----要闻推送--打开。
2.确定手机能正常连接移动数据或WIFI
。
3.有些手机休眠时会自动关闭移动数据和WIFI,
手机设置----无线和网络----WLAN设置----菜单键弹出高级选项----WLAN休眠策略----选择永不休眠。
I. java代码怎么控制android休眠和唤醒
唤醒:android.intent.action.SCREEN_ON (代码)
休眠:android.intent.action.SCREEN_OFF (代码)
android系统一段时间没有操作,
屏幕(screen)将从高亮(bright)变为暗淡(dim),如果再过段时间还是没有操作,屏幕(screen)从暗淡(dim)变为关闭(off).这时,系统将进入休眠.
而对于某些需要保持系统唤醒甚至屏幕唤醒的应用(比如视频播放器和音乐播放器)来说,就必须要有一个机制,使得系统不进入休眠状态,设置保持屏幕亮屏状态.
wakelock即用来实现以上目的
接下来对每一个模块具体分析:
powermanager
对应文件是android/frameworks/base/core/java/android/os/PowerManager.java
在Android中应用程序并不是直接同PowerManagerService交互的,而是通过PowerManager间接地与PowerManagerService打交道。
此文件定义了一个powermanager类.
主要实现了
1,wakelock的申请与释放
public WakeLock newWakeLock(int flags, String tag)
2,系统延时进入休眠
public void userActivity(long when, boolean noChangeLights)
3,系统强制休眠
public void goToSleep(long time)
4,屏幕亮度设置
public void setBacklightBrightness(int brightness)
5,屏幕状态查询
public boolean isScreenOn()
6,系统重启
public void reboot(String reason)
细节
wakelock的申请与释放
{@samplecode
*PowerManager pm = (PowerManager)mContext.getSystemService(
* Context.POWER_SERVICE);
*PowerManager.WakeLock wl = pm.newWakeLock(
* PowerManager.SCREEN_DIM_WAKE_LOCK
* | PowerManager.ON_AFTER_RELEASE,
* TAG);
*wl.acquire();
* // ...
*wl.release();
一共有如下几个flag来进行不一样的唤醒方式.可以根据需要设置
Flag Value CPU Screen Keyboard
PARTIAL_WAKE_LOCK On* can-off Off
SCREEN_DIM_WAKE_LOCK On Dim Off
PROXIMITY_SCREEN_OFF_WAKE_LOCK on 距离传感器时关闭 off
SCREEN_BRIGHT_WAKE_LOCK On Bright Off
FULL_WAKE_LOCK On Bright Bright
ACQUIRE_CAUSES_WAKEUP 确保wakelock,主要用于视频播放器
ON_AFTER_RELEASE = 0x20000000 release后倒计时,关闭屏幕
...
userActivity的作用:
使系统从其他状态进入全部打开状态,比如从暗屏(dim)切换到亮屏,并重置倒计时计数器
J. android 如何让手机进入休眠状态,又如何唤
1.WakeLock主要代码如下:
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this.getClass().getName());//持有唤醒锁
wakeLock.setReferenceCounted(false);
wakeLock.acquire(30*1000);//30s亮屏
wakeLock.release();//释放锁,灭屏
2.FLAG_KEEP_SCREEN_ON代码如下
可使用 FLAG_KEEP_SCREEN_ON 替换WakeLock的方式.
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//亮屏
this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//灭屏