You can use a broadcast receiver with android.intent.action.SCREEN_ON and android.intent.action.SCREEN_OFF action filters
A small example:
Your receiver:
public class ScreenOnOffReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
Your manifest:
<receiver android:name=".ScreenOnOffReceiver"> <intent-filter> <action android:name="android.intent.action.SCREEN_ON" /> <action android:name="android.intent.action.SCREEN_OFF" /> </intent-filter> </receiver>
source share