即使在 onDestroy() 之后监听屏幕开机/关机
Listen for screen power on / power off even after onDestroy()
我正在尝试在我的应用程序中监听屏幕开机/关机但是在 onDestroy() 之后因为应用程序被销毁它停止监听我的应用程序在它像背景一样关闭后有什么方法可以继续监听进程?
广播接收器class:
public class ScreenReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent i) {
if (i.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
System.out.println("Screen turned off");
} else if(i.getAction().equals(Intent.ACTION_SCREEN_ON)) {
System.out.println("Screen turned on");
}
}
}
我把这段代码放在我的 onCreate() 中 activity
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new ScreenReceiver();
registerReceiver(mReceiver, filter);
如果您在 AndroidManifest
中注册 ScreenReceiver
,即使您的应用已被销毁,您也会收到广播。唯一不会收到广播的情况是用户通过设置强制停止应用程序
类似
<receiver android:name=".ScreenReceiver">
<intent-filter>
<action android:name="action_looking_for"/>
</intent-filter>
</receiver>
我正在尝试在我的应用程序中监听屏幕开机/关机但是在 onDestroy() 之后因为应用程序被销毁它停止监听我的应用程序在它像背景一样关闭后有什么方法可以继续监听进程?
广播接收器class:
public class ScreenReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent i) {
if (i.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
System.out.println("Screen turned off");
} else if(i.getAction().equals(Intent.ACTION_SCREEN_ON)) {
System.out.println("Screen turned on");
}
}
}
我把这段代码放在我的 onCreate() 中 activity
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new ScreenReceiver();
registerReceiver(mReceiver, filter);
如果您在 AndroidManifest
中注册 ScreenReceiver
,即使您的应用已被销毁,您也会收到广播。唯一不会收到广播的情况是用户通过设置强制停止应用程序
类似
<receiver android:name=".ScreenReceiver">
<intent-filter>
<action android:name="action_looking_for"/>
</intent-filter>
</receiver>