lor*_*off 4 android screen screen-off
我有一个活动,它的onPause必须做一些工作,但不是屏幕关闭时.我已经注册了接收器的ACTION_SCREEN_OFF意图,理论上,这和应用程序级别的静态标志应该做的但是......它不起作用,因为onPause在接收器可以获得其意图之前调用活动的回调.那就是:logcat*ting*在按下空闲按钮的同时,我可以看到第一个onPause跟踪和onReceive之后的跟踪.此时,设置静态标志并不是很重要......
是否有可能知道onPause屏幕关闭时的活动时间?
在此先感谢
L.
我有同样的问题,接收器不是要走的路
android开发者
http://developer.android.com/reference/android/content/BroadcastReceiver.html
"注意:如果在Activity.onResume()实现中注册一个接收器,你应该在Activity.onPause()中取消注册它.(暂停时你不会收到意图,这将减少不必要的系统开销).在Activity.onSaveInstanceState()中取消注册,因为如果用户在历史堆栈中移回,则不会调用此方法."
而是在你的onPause方法中创建一个电源管理器[我从这个链接获得它]
public void onPause(){
PowerManager powermanager =(PowerManager)global.getSystemService(Context.POWER_SERVICE);
if (powermanager.isScreenOn()){
screen_off_beforePause = false;
//your code here
}else{
screen_off_beforePause = true;
}
}
public void onResume() {
if (screen_off_beforePause){
Log.e(TAG + ".onResume()", "screen was off before onPause");
}else{
Log.d(TAG + ".onResume()", "screen was not off before onPause");
//your code here
}
//resetting
screen_off_beforePause = false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1615 次 |
| 最近记录: |