启动设备后自动启动服务甚至应用程序未立即打开。 Android
Auto Start Service after booting device even app not opened atonce. Android
我正在制作一个系统应用程序。因为我有一个要求是 运行 启动加载后的服务,而无需一次启动该应用程序。
这个问题有点类似于这个
System App auto starting
但它没有任何合适的解决方案。
另请阅读 BOOT_COMPLETE_RECEIVER 仅在应用程序立即启动时有效。
从广播接收器启动服务后,使用广播接收器获取操作并使用 START_STICKY 服务,这样如果它因为某些优先级而被杀死而不是重新创建,并且如果你想连续 运行 该服务在后台比 WAKE_Lock 该服务和使用警报管理器检查它是否 运行nig。
在清单中设置
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver
android:name="AutoStart"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
自动启动class
public class AutoStart extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)) {
// Start your service here..
}
}
}
感谢大家的努力,我终于得到了答案。
解决方案:
正如我所说,我的应用程序是系统应用程序,即使它们没有立即打开,系统也能正常工作。因为它们没有处于停止状态,即在 android 3.1.
之后强制执行
其次,如果用户应用需要这个,那么它的清单在 activity 中没有任何 "android.intent.category.LAUNCHER" 类别。
您还可以通过 adb 使用此命令启用您的应用
adb shell am broadcast -a com.example.demo.action.LAUNCH --include-stopped-packages (未测试)
有些好处link:
http://droidyue.com/blog/2014/01/04/package-stop-state-since-android-3-dot-1/
我正在制作一个系统应用程序。因为我有一个要求是 运行 启动加载后的服务,而无需一次启动该应用程序。 这个问题有点类似于这个 System App auto starting 但它没有任何合适的解决方案。 另请阅读 BOOT_COMPLETE_RECEIVER 仅在应用程序立即启动时有效。
从广播接收器启动服务后,使用广播接收器获取操作并使用 START_STICKY 服务,这样如果它因为某些优先级而被杀死而不是重新创建,并且如果你想连续 运行 该服务在后台比 WAKE_Lock 该服务和使用警报管理器检查它是否 运行nig。
在清单中设置
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver
android:name="AutoStart"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
自动启动class
public class AutoStart extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)) {
// Start your service here..
}
}
}
感谢大家的努力,我终于得到了答案。 解决方案: 正如我所说,我的应用程序是系统应用程序,即使它们没有立即打开,系统也能正常工作。因为它们没有处于停止状态,即在 android 3.1.
之后强制执行其次,如果用户应用需要这个,那么它的清单在 activity 中没有任何 "android.intent.category.LAUNCHER" 类别。
您还可以通过 adb 使用此命令启用您的应用 adb shell am broadcast -a com.example.demo.action.LAUNCH --include-stopped-packages (未测试)
有些好处link:
http://droidyue.com/blog/2014/01/04/package-stop-state-since-android-3-dot-1/