• 一个 android 开机自动启动功能的例子


    测试代码仅仅关于开机自动启动,无其他功能。

    要实现此功能简单说包括三部分:AndroidManifest.xml,rec1.java,及设置开机自动启动权限。测试环境:android 4.4.2,java 1.6.0_45。


    1. 具体代码

    1.1 AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.lbs">
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    
        <application>
            <activity android:name="com.app1.act1">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <receiver android:name="com.app1.rec1" >
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
                </intent-filter>
            </receiver>
        </application>
    </manifest>


    1.2 rec1.java

    public class rec1 extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            Toast.makeText(context, "receiver...", Toast.LENGTH_LONG).show();
        }
    }


    2.一些说明
    --adb install app1.apk 后应在设置里手动打开此app的开机自动启动权限
    --使用前需要手动启动该app程序
    --可以点击退出按钮结束程序(java.lang.System.exit(0))
    --这时程序会出现在 recent 中,不能从中划掉
    --重新启动手机后不出现在 recent 中但receiver有效
    --此时若手动启动程序再从recent中划掉则receiver失效,重启后仍失效
    --注意不应关闭该程序在设置里的开机自动启动权限
    --poweron 与 reboot 同效

    后补1:似与 battery low (低于30%)有关。高于时与划出与否无关。低于时只能在打开app状态下重启才有效。

    后补2:
    android broadcastreceiver recycle
    -- 长时间不用(大约超过数小时)会被系统回收
    -- 回收后重新打开app,或重启手机亦无效
    -- 经过 Activity.PackageManageSetEnable 设置使能后有效

    [END]

  • 相关阅读:
    图书-哲学-奥卡姆剃刀:《奥卡姆剃刀原理》
    汉语-词语-认知:认知能力
    汉语-词语-认知:认知水平
    汉语-词语:认知
    pg_dump
    pg_ctl
    pg_controldata
    pg_config
    paste
    passwd
  • 原文地址:https://www.cnblogs.com/xyyztx/p/15376272.html
Copyright © 2020-2023  润新知