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

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

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

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

【问题讨论】:

标签: java android android-studio service android-service


【解决方案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】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-21
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多