美文网首页技术分享Android知识Android开发
android开机自启动应用的实现

android开机自启动应用的实现

作者: wwzlp | 来源:发表于2017-03-03 17:39 被阅读739次

    之前有个奇葩的需求就是要求设备开机时自动启动应用(自家产的设备),所以网上搜了下:
    创建一个广播接收器,然后在onRecieve方法中实现启动应用:

    public class BootBroadcastReceiver extends BroadcastReceiver{
    
        @Override
        public void onReceive(final Context context, Intent intent) {
            Intent toIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
            context.startActivity(toIntent );
        }
    }
    

    OK,功能是实现了,但是有时候启动会很慢,10+s之后才会启动,有时候又干脆不启动。一位朋友正好也做过相关的功能,提议我在方法中先睡两秒再去调起。

           try {
                Thread.sleep(2000L);
                //Intent toIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
               // context.startActivity(toIntent );
                intent = new Intent(context, LauncherActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intent);
           } catch (InterruptedException e) {
              e.printStackTrace();
           }
    

    上面两种方法都可以调起应用,只是在睡两秒再启动后,成功率会高不少,而且相对也会比较快~。
    最后,记得在xml文件中注册这个广播接收器哦:

    <receiver android:name=".receiver.BootBroadcastReceiver">
         <intent-filter>
               <action android:name="android.intent.action.BOOT_COMPLETED" />
               <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
    </receiver>
    

    相关文章

      网友评论

      • Aldrich_N:如果不是定制的,怎么保证在不同手机上都能做到开机启动呢
        wwzlp:一般手机厂商都会做限制的,不然你的手机还能用么:wink:

      本文标题:android开机自启动应用的实现

      本文链接:https://www.haomeiwen.com/subject/nehrgttx.html