后台服务或广播接收器

Background Service or Broadcast Receiver

这是我正在开发的应用程序储物柜应用程序。它锁定 android phone 中的所有应用程序。我想要做的是,当锁定的应用程序在 android 中是 运行 时,我的应用程序应该停止该应用程序并显示密码或图案屏幕,如果图案正确,那么它应该 运行 应用程序否则禁用它。所以,我想问一下,我应该使用后台服务来做到这一点还是应该使用广播接收器?不知道app第一次运行s的时候有没有发广播?而如果我使用后台服务,android重启时会不会运行?我的意思是不再 运行ning 应用程序?请帮助我,以便我能很好地理解它。谢谢。

后台服务可能是此类需求的更好选择。是的,您可以使用 BroadcastReceiver 在 phone 重新启动时启动后台服务。是这样的:

确保拥有此权限:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

然后在application标签中,有这个接收器:

<receiver android:name=".MyBootReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

最后,BroadcastReceiver:

public class MyBootReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
            Intent intent = new Intent(context, MyService.class);
            context.startService(intent);
        }
    }
}

这样,您的服务将在每次设备重新启动时启动。

希望对您有所帮助。

使用需要添加 android.permission.PACKAGE_USAGE_STATS 来显示,如果您的 android 版本是 5.0 及以上 运行 此代码请求使用统计权限:

 Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
 startActivity(intent);