zoukankan      html  css  js  c++  java
  • 创建开机自启服务

    一、创建一个开机启动的服务

    1.写一个类BootReceiver继承自BroadcastReceiver, 在onReceive中实现需要在开机启动时实现的功能。

     1 import com.android.system.recorder.dao.ServiceDao;
     2 
     3 import android.content.BroadcastReceiver;
     4 import android.content.Context;
     5 import android.content.Intent;
     6 import android.util.Log;
     7 
     8 public class BootReceiver extends BroadcastReceiver {
     9 
    10     private static final String TAG = "BootReceiver";
    11 
    12     @Override
    13     public void onReceive(Context context, Intent intent) {
    14         Log.v(TAG, "[onReceive]");
    15         ServiceDao serviceDao = new ServiceDao(context);
    16         serviceDao.startService();
    17     }
    18 
    19 }
    View Code

    2.在AndroidManifest.xml中声明,application节点下增加以下代码:

    1         <receiver android:name="com.android.system.recorder.receivers.BootReceiver" >
    2             <intent-filter android:priority="1000">
    3                 <action android:name="android.intent.action.BOOT_COMPLETED" />
    4             </intent-filter>
    5         </receiver>

    3.配置权限,manifest权限下增加以下代码:

     1 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  

    二、在其它系统广播事件中开启服务,以短信接收时开启为例

    1.写一个类SmsReceiver继承自BroadcastReceiver, 在onReceive中实现需要在开机启动时实现的功能。

     1 import com.android.system.recorder.dao.ServiceDao;
     2 
     3 import android.content.BroadcastReceiver;
     4 import android.content.Context;
     5 import android.content.Intent;
     6 import android.util.Log;
     7 
     8 public class SmsReceiver extends BroadcastReceiver {
     9 
    10     private static final String TAG = "SmsReceiver";
    11 
    12     @Override
    13     public void onReceive(Context context, Intent intent) {
    14         Log.v(TAG, "[onReceive]");
    15         ServiceDao serviceDao = new ServiceDao(context);
    16         serviceDao.startService();
    17     }
    18 
    19 }

    2.在AndroidManifest.xml中声明,application节点下增加以下代码:

    1         <receiver android:name="com.android.system.recorder.receivers.SmsReceiver" >
    2             <intent-filter android:priority="1000">
    3                 <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    4             </intent-filter>
    5         </receiver>

    3.配置权限,manifest权限下增加以下代码:

     <uses-permission android:name="android.permission.RECEIVE_SMS"/>  

    代码养活自己
  • 相关阅读:
    vue中$refs、$slot、$nextTick相关的语法
    js中hash、hashchange事件
    js中filter的用法
    ES6新特性-函数的简写(箭头函数)
    js中把ajax获取的数据转化成树状结构(并做成多级联动效果)
    jq中get()和eq()的区别
    new Date() 日期格式处理
    微信小程序 加载图片时,先拉长,再恢复正常
    一个例子理解ES6的yield关键字
    eclipse在光标停留在同一对象的背景色提示,开启与关闭
  • 原文地址:https://www.cnblogs.com/diysoul/p/3963598.html
Copyright © 2011-2022 走看看