Android 在特定时间使用 AlarmManager 启动服务并且设备启动完成

Posted

技术标签:

【中文标题】Android 在特定时间使用 AlarmManager 启动服务并且设备启动完成【英文标题】:Android Start service at specific time using AlarmManager and also device boot complete 【发布时间】:2016-06-27 10:08:59 【问题描述】:

我不会在每天的特定时间启动服务,也会在设备启动完成时启动。

例如.. 每天下午 13 点,服务启动并显示 Toast(“服务启动”)。

不仅如此,服务还必须在启动完成时启动,但如果你不是下午 13 点,则不应显示 toast,但必须启动

【问题讨论】:

检查这个 - developer.android.com/reference/android/app/… 【参考方案1】:

为启动完成定义 ACTION_BOOT_COMPLETED 的接收器 Start service at boot complete

对于特定时间,使用 AlarmManager Start Service At Specific Time

【讨论】:

【参考方案2】:
public class onBootComplete extends BroadcastReceiver

    @Override
    public void onReceive(Context context, Intent intent) 
        // TODO Auto-generated method stub
         if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED))
                //Do your task here
            
    


并且在 Manifest 中声明这个..

<receiver
            android:name=".onBootComplete"
            android:enabled="true"
            android:exported="true" >
            <intent-filter android:priority="500" >
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

添加此权限:

&lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/&gt;

对于定时操作,请使用 AlarmManager

此类提供对系统警报服务的访问。这些允许 您可以安排您的应用程序在某个时间点运行 未来。当警报响起时,已注册的 Intent 因为它是系统广播的,自动启动目标 应用程序(如果它尚未运行)。

【讨论】:

【参考方案3】:

检查这个链接,它会帮助你How to repeat notification daily on specific time in android through background service

【讨论】:

以上是关于Android 在特定时间使用 AlarmManager 启动服务并且设备启动完成的主要内容,如果未能解决你的问题,请参考以下文章

使用 android 意图在特定时间打开 youtube 视频

Android 在特定时间使用 AlarmManager 启动服务并且设备启动完成

如何在特定时间触发android中的后台服务?

在特定时间关闭 App 时安排 Android 功能

在Android中,每天在特定时间设置重复警报

如何在 Android 中使用 xml 创建这个特定的形状?