ACTION_SCREEN_OFF后台服务触发器

时间:2014-07-10 20:13:32

标签: android android-intent

我还通过AlarmManager和通知触发了通知 发出声音。

显然,当app在后台时可能会触发警报,我想让用户在按下锁定按钮时取消声音 - 即收听ACTION_SCREEN_OFF

因此,我想知道是否有可能启动服务并倾听ACTION_SCREEN_OFF

我已经看过Listening for ACTION_SCREEN_OFF但是只有当应用程序位于前台时才能使用BroadCastReceiver的解决方案。正确?

1 个答案:

答案 0 :(得分:0)

例如,如果您尝试执行ACTION_SCREEN_OFF,那么您可以在Activity中定义广播接收器,例如启动警报。

public class SomeListener extends BroadcastReceiver 
{
    @Override
    public void onReceive(Context context, Intent intent) 
    {
      //Turn off sounds
    }
}

然后在清单中,在使用监听器的活动中提供类似这样的东西。

<intent-filter>
    <action  android:name="android.hardware.usb.action.ACTION_SCREEN_OFF" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.ACTION_SCREEN_OFF"
                         android:resource="@xml/my_filter" />

额外的my_filter类可以提供额外的元数据。在这种情况下,它是对设备的串行或UUID的检查,因此不能在所有USB连接上启动。但你应该能够做类似的事情。

当动作发生时,这应该在你的应用程序中触发监听器,正如我所理解的那样。此功能适用于过去在USB连接上启动应用程序。即使没有首先打开应用程序。