幾種常用BroadcastReceiver

開機廣播

可在此廣播中做開機自啓動服務

public class BootBroadcasrReceiver extends BroadcastReceiver {
	@Override
	public void onReceive(Context context, Intent intent) {
		Log.i("CDH", "開機廣播");
	}
}

<receiver android:name=".BootBroadcasrReceiver" >
	<intent-filter>
		<!-- 接受系統開機廣播 -->
		<action android:name="android.intent.action.BOOT_COMPLETED"/>
        <category android:name="android.intent.category.HOME"/>
	</intent-filter>
</receiver>

需要添加權限

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





應用增加廣播

/**
 * 1.安裝其他應用時會收到廣播,但安裝本應用時不會收到廣播
 * 2.重新安裝其他應用時會收到廣播,但重新安裝本應用時不會收到廣播
 */
public class PackageAddedBroadcastReceiver extends BroadcastReceiver {
	@Override
	public void onReceive(Context context, Intent intent) {
		Log.i("CDH", "應用增加廣播");
		Log.i("CDH", "包名:"+intent.getDataString());
		Log.i("CDH", "用戶ID:"+intent.getIntExtra(Intent.EXTRA_UID, 0));
		Log.i("CDH", "重新安裝應用?:"+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false));
	}
}

<receiver android:name=".PackageAddedBroadcastReceiver">
	<intent-filter>
		<action android:name="android.intent.action.PACKAGE_ADDED"/>
        <data android:scheme="package"/>
	</intent-filter>
</receiver>



應用卸載廣播

/**
 * 1.重新安裝本應用時會收到廣播
 * 2.重新安裝其他應用時會收到廣播
 * 3.其他應用被卸載時會收到廣播,但本應用被卸載時不會收到廣播
 */
public class PackageRemovedBroadcastReceiver extends BroadcastReceiver {
	@Override
	public void onReceive(Context context, Intent intent) {
		Log.i("CDH", "應用卸載廣播");
		Log.i("CDH", "包名:"+intent.getDataString());
		Log.i("CDH", "用戶ID:"+intent.getIntExtra(Intent.EXTRA_UID, 0));
		Log.i("CDH", "整個應用被卸載?:"+intent.getBooleanExtra(Intent.EXTRA_DATA_REMOVED, false));
		Log.i("CDH", "重新安裝應用?:"+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false));
	}
}

<receiver android:name=".PackageRemovedBroadcastReceiver">
	<intent-filter>
		<action android:name="android.intent.action.PACKAGE_REMOVED"/>
        <data android:scheme="package"/>
	</intent-filter>
</receiver>
需要添加權限

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



應用重新安裝廣播

1.本應用重新安裝

收到卸載廣播 --> 重新安裝廣播

/**
 * 1.重新安裝本應用時會收到廣播
 * 2.重新安裝其他應用時會收到廣播
 */
public class PackageReplacedBroadcastReceiver extends BroadcastReceiver {
	@Override
	public void onReceive(Context context, Intent intent) {
		Log.i("CDH", "應用替換廣播");
		Log.i("CDH", "包名:"+intent.getDataString());
		Log.i("CDH", "用戶ID:"+intent.getIntExtra(Intent.EXTRA_UID, 0));
		Log.i("CDH", "重新安裝應用?:"+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false));
	}
}

<receiver android:name=".PackageReplacedBroadcastReceiver">
	<intent-filter>
		<action android:name="android.intent.action.PACKAGE_REPLACED"/>
        <data android:scheme="package"/>
	</intent-filter>
</receiver>




2.其他應用重新安裝

收到卸載廣播 --> 應用增加廣播 --> 重新安裝廣播



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章