BroadcastReceiver with acton SCREEN_ON 在后台
BroadcastReceiver with acton SCREEN_ON in background
我想在设备屏幕打开时收听并更新小部件,但是 BroadcastReceiver
在我关闭我的应用程序时不起作用。它仅在应用程序为 运行.
时有效
AndroidManifest.xml:
<receiver
android:name=".WidgetProvider"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
<action android:name="android.intent.action.SCREEN_ON"/>
<action android:name="android.intent.action.SCREEN_OFF"/>
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_info"/>
</receiver>
代码在onCreate()
:
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new WidgetProvider();
registerReceiver(mReceiver, intentFilter);
自 Android8 起,出于安全和电池消耗的考虑,后台进程已被限制。一些广播接收器,如:-
- SCREEN_OFF
- TIME_TICK
- 等..
已经 blocked.But,其中一些是这样的:
- 重启
工作正常。这是为了节省电池消耗。这也可以防止我们的应用程序在不需要时打开活动。
我想在设备屏幕打开时收听并更新小部件,但是 BroadcastReceiver
在我关闭我的应用程序时不起作用。它仅在应用程序为 运行.
AndroidManifest.xml:
<receiver
android:name=".WidgetProvider"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
<action android:name="android.intent.action.SCREEN_ON"/>
<action android:name="android.intent.action.SCREEN_OFF"/>
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_info"/>
</receiver>
代码在onCreate()
:
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new WidgetProvider();
registerReceiver(mReceiver, intentFilter);
自 Android8 起,出于安全和电池消耗的考虑,后台进程已被限制。一些广播接收器,如:-
- SCREEN_OFF
- TIME_TICK
- 等..
已经 blocked.But,其中一些是这样的:
- 重启
工作正常。这是为了节省电池消耗。这也可以防止我们的应用程序在不需要时打开活动。