• 使用BroadcastReceiver实现开机自动运行的Service


    为了让Service随应用系统启动自动运行,可以让BroadcastReceiver监听Action为ACTION_BOOT_COMPLETED常量的Intent,然后在BroadcastReceiver中启动特定的Service即可。

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.sax.StartElementListener;

    public class LaunchReceiver extends BroadcastReceiver{

      @Override
      public void onReceive(Context context, Intent intent) {
      Intent tIntent = new Intent(context, LaunchService.class);
        //启动指定Service
        context.startService(tIntent);
      }

    }

    实现自动运行的关键是要让LaunchReceiver监听系统开机发出的广播,因此需要在AndroidManifest.xml文件中采用如下代码配置该BroadcastReceiver:

    <!-- 定义一个BroadcastReceiver,监听系统开机广播 -->
    <receiver android:name=".LaunchReceiver">
      <intent-filter >
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
      </intent-filter>
    </receiver>

    除此之外,为了让程序能访问系统开机事件,还需要为应用程序增加权限:

    <!-- 授予应用程序访问系统开机事件的权限 -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    至于程序中用到的LaunchService,则可以是用户开发的Service,既可是监听用户来电的Service,也可以是监听用户短信、拦截黑名单电话等的Service,

  • 相关阅读:
    微信卡券领用中的问题
    abp的开发20180425
    typescript 接口的新认识
    Jquery构建Form表单Post提交数据的简单方法
    EF使用时异常:对一个或多个实体的验证失败。有关详细信息
    VS快捷键简单记录
    比较和排序 IComparable And IComparer
    wpf全局异常
    MailBee的简单使用
    json数据的获取(网络摘抄)
  • 原文地址:https://www.cnblogs.com/jiww/p/5615984.html
Copyright © 2020-2023  润新知