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.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料。

 

相關文章
相關標籤/搜索