这是我正在处理的app locker应用程序。它锁定了Android手机中的所有应用程序。我想要做的是,当一个锁定的应用程序在Android中运行时,我的应用程序应该停止应用程序并显示密码或模式屏幕,如果模式是正确的,那么它应该运行应用程序否则禁用它。所以,我想问一下,我应该使用后台服务这样做,还是应该使用广播接收器?我不知道应用程序第一次运行时是否发送广播?如果我使用后台服务,它会在android重启时运行吗?我的意思是不再运行应用程序?请帮助我,以便我能理解它。谢谢。
答案 0 :(得分:1)
后台服务可能是此类要求的更好选择。是的,您可以在使用BroadcastReceiver
重新启动手机时启动后台服务。这是如何:
确保拥有此权限:
<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);
}
}
}
这样,您的服务将在每次设备重新启动时启动。
希望这有帮助。
答案 1 :(得分:0)
使用需要添加android.permission.PACKAGE_USAGE_STATS来显示,如果您的Android版本是5.0及以上,请运行此代码以请求使用属性权限:
Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
startActivity(intent);