Android 包管理器中的setComponentEnabledSetting是否启动服务?
如果我执行以下操作,它是否启动服务Android 包管理器中的setComponentEnabledSetting是否启动服务?,android,Android,如果我执行以下操作,它是否启动服务 PackageManager pm = context.getPackageManager(); pm.setComponentEnabledSetting( new ComponentName(context, MyService.class), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 如果没
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(
new ComponentName(context, MyService.class),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
如果没有,它有什么作用
我读了javadoc,它只是说“设置启用的设置”
如果我执行以下操作,它是否启动服务
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(
new ComponentName(context, MyService.class),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
否。调用startService将启动该服务
如果没有,它有什么作用
组件(如服务)可以启用或禁用。无法启动禁用的组件
例如,假设您希望响应某些系统广播,但仅在某些时间响应。您可以在清单中禁用元素,然后在需要时使用上面显示的代码启用它。这样,您只需要让接收器在需要时对广播做出响应,而不是在所有时间
如果我执行以下操作,它是否启动服务
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(
new ComponentName(context, MyService.class),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
否。调用startService将启动该服务
如果没有,它有什么作用
组件(如服务)可以启用或禁用。无法启动禁用的组件
例如,假设您希望响应某些系统广播,但仅在某些时间响应。您可以在清单中禁用元素,然后在需要时使用上面显示的代码启用它。这样,您只需要让接收器在需要时响应广播,而不是在所有时间都响应广播。如果您正在寻找自动启动服务的方法,您可能需要执行以下操作: 将此添加到清单:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
....
<receiver android:name=".service.YourReceiver" android:process=":remote"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
然后从接收器启动服务…如果您正在寻找自动启动服务的方法,您可能需要执行以下操作: 将此添加到清单:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
....
<receiver android:name=".service.YourReceiver" android:process=":remote"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
然后从接收器启动服务