须知少年凌云志,曾许人间第一流。这篇文章主要讲述在开机或重启设备时启动Android服务[重复]相关的知识,希望能为你提供帮助。
这个问题在这里已有答案:
- Android -Starting Service at Boot Time 8个答案
答案要重新启动您的服务,您可以创建一个带有
android.intent.action.BOOT_COMPLETED
操作的BrodcastReciever并在其中,只需启动您的服务即可。如果服务在关闭时运行,您可以使用SharedPreferences进行保存。另一答案首先,您需要一种方法来指示服务是否已激活。在这种情况下,我会使用
SharedPreference
,即使在应用程序关闭,设备重新启动等后也会持久存储,你可以这样做:public void setServiceActivated(boolean activated) {
SharedPreferences sharedPreferences = context.getSharedPreferences("servicePrefs", Context.MODE_PRIVATE);
SharedPreferences.Editor prefEditor = sharedPreferences.edit();
prefEditor.putBoolean("serviceActivated", activated);
prefEditor.apply();
}
然后,创建一个
BroadcastReceiver
,它将在设备启动过程完成时运行,并在启动时启动服务:public class AutoStart extends BroadcastReceiver {// Method is called after device bootup is complete
public void onReceive(final Context context, Intent arg1) {
SharedPreferences sharedPreferences = context.getSharedPreferences("servicePrefs", Context.MODE_PRIVATE);
boolean serviceActivated = sharedPreferences.getBoolean("serviceActivated", false);
if (serviceActivated) {
// Start service here
}
}}
【在开机或重启设备时启动Android服务[重复]】最后,在清单中注册
BroadcastReceiver
:<
application
android:allowBackup="true"
android:largeHeap="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<
!-- Launches your service on device boot-up -->
<
receiver android:name=".AutoStart">
<
intent-filter>
<
action android:name="android.intent.action.BOOT_COMPLETED" />
<
/intent-filter>
<
/receiver>
<
/application>
推荐阅读
- 我的春季启动webapp.war停止在ssh注销上运行。如何创建应用服务,以便在没有用户登录的情况下运行
- 如何通过后台服务每天在android中的特定时间重复通知
- 应用程序暂停使用一段时间后,android服务停止工作
- Android facebook应用程序的哈希键
- 包含在.append中的编码(蟒蛇)
- android - 编码和解码字符串定义为url
- Xamarin.Forms / Xamarin.Android的任何插件用于选择保存文件的目录()
- Xamarin表示Android导航栏向下移动
- Xamarin.Forms Android DatePicker / TimePicker按钮侦听器