2015-05-14 64 views
0

当用户关闭屏幕时,我必须允许我的应用程序执行某些操作,但当用户转到主屏幕(或其他应用程序)时,我必须停止服务。做屏幕关闭时的东西,但当应用程序转到背景时关闭

我试图处理电源按钮,但它不工作。 然后创建ScreenReceiver这样的:

@Override 
public void onReceive(Context context, Intent intent) { 
    if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { 
     wasScreenOn = false; 
    } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { 
     wasScreenOn = true; 
    } 
} 

但它改变wasScreenOn值为时已晚(的onStop方法被调用后)

@Override 
protected void onStop() { 
    super.onStop(); 
    Log.i(TAG, "onStop"); 
    if (powerButtonClicked) 
     return; 
    if (mBound) { 
     mMediaService.onStop(); 
    } 
} 

电源按钮始终是假的... ...它改变为时已晚

如何正确执行此操作?

回答

0

好的,我找到答案。 所有你需要做的就是声明PowerManager的

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); 

和的onStop()

if (!powerManager.isScreenOn()) 
{ 
    // Screen is off 
} 
相关问题