zoukankan      html  css  js  c++  java
  • android Service开机启动及debug

    开机启动一个service需要做的工作如下:

    1、开发一个receiver用于接收系统广播;

    public class BootReceiver extends BroadcastReceiver {
        public static final String TAG = "bootReceiver";
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction().toString();
            if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {
                Intent service = new Intent(context, LocateService.class);
                context.startService(service);
                return;
            }
        }
    }

    2、添加mainifest,配合广播的接收和添加权限;

    <receiver android:name="com.example.receiver.BootReceiver" >
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" >
    </action> </intent-filter> </receiver> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    3、完成service部分。

    调试service:

    在Android中service的调试和普通的Application不同,如果仅仅设置断点的话,调试器是不会在你的断点处停下来的,解决方法就是:
    在代码中声明,以便让调试器能到你声明的地方。你只需加入下面这一句代码即可:
    android.os.Debug.waitForDebugger();
    你的断点可以设置在这句调用后面任何地方。

    经验总结:

    1、2.3版本以后 系统提供快速启动选项,如果使用,系统不会发开机完成的系统广播;
    2、3.1以后,安装程序要启动一次才会运行接受系统广播,为了防止恶意的内置应用;
    3、手机软件如360,定制系统如小米等,会设置禁止应用自启动,如果不在白名单,同样收不到系统广播;
    
    4、不调试的时候要把 android.os.Debug.waitForDebugger(); 去掉,否则应用会启动黑屏,等待调试;
  • 相关阅读:
    使用session页面控制登录入口及购物车效果的实现
    php中会话保持 session 与cooker
    php多关键字查询
    php后台编辑关联数据
    php后台增删改跳转
    php登录注册页面及加载
    [bzoj4098] [Usaco2015 Open]Palindromic Paths
    [bzoj1969] [Ahoi2005]LANE 航线规划
    4395: [Usaco2015 dec]Switching on the Lights
    [bzoj2789] [Poi2012]Letters
  • 原文地址:https://www.cnblogs.com/sudawei/p/3417684.html
Copyright © 2011-2022 走看看