Android连载20-静态注册实现开机启动

1、静态注册实现开机启动android

1.在以前的连载中,咱们编写的是动态注册,用到了内部类等。动态注册只能在程序启动以后才能生效。接下来咱们将要使用静态注册的方式进行注册。(能够举例开机启动项)git

 

package com.example.broadcasttest2;

​

import android.content.BroadcastReceiver;

import android.widget.Toast;

​

public class BootCompleteReceiver extends BroadcastReceiver{

  @Override

  public void onReceive(Context context,Intent intent) {

    Toast.makeText(context,"Boot Complete", Toast.LENGTH_LONG).show();

  }

​

}

 

2. 咱们须要AndroidManifest.xml中将这个广播接收器的类名注册进去。github

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.broadcasttest2"

    android:versionCode="1"

    android:versionName="1.0" >

    <uses-sdk

        android:minSdkVersion="14"

        android:targetSdkVersion="19" />

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

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

    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".MainActivity"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>       

        <receiver android:name=".BootCompleteReceiver">

            <intent-filter >

                <action android:name="android.intent.action.BOOT_COMPLETED"/>

            </intent-filter>

        </receiver>

    </application>

</manifest>

 

终于在,application>标签内出现了一个新的标签<receiver>,全部静态注册广播接收器是在这里进行注册的。它的用法其实和<activity>标签很是类似,首先经过android:name来指定具体注册哪个广播接收器,而后在<intent-filter>标签中里加入想要接受的广播就好了,因为Andorid系统启动完成后会发出一条值为android.intent.action.BOOT_COMPLETED的广播,所以咱们我在这里添加了相应的action。微信

另外,监听系统开机广播也是须要声明权限的,能够看到,咱们使用<uses-permission>,标签又加入一条android.permission.RECEIVE_BOOT_COMPLETED权限​。app

如今咱们从新运行程序后,咱们的程序已经能够接受开机广播了,ide

添加好设置以后,咱们从新启动一个这个app,而后看一下设置中关于APP的​配置信息;能够看到,这里有默认启动项的设置。学习

​注意:不要在onReceive()方法中添加过多的逻辑或者进行任何的耗时操做,由于在广播接收器中是不容许开启线程的,当onReceive()方法运行了较长时间而没有结束,程序​就会报错。所以广播接收器更多的是扮演一种打开程序其余组件的角色,好比建立一条状态栏通知,或者启动一个服务等。​大数据

2、源码:ui

BroadcastTest2spa

https://github.com/ruigege66/Android/tree/master/BroadcastTest2

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,我的公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料。

 

相关文章
相关标签/搜索