幾種常用BroadcastReceiver
開機廣播
可在此廣播中做開機自啟動服務
public class BootBroadcasrReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("CDH", "開機廣播");
}
}
<receiver android:name=".BootBroadcasrReceiver" >
<span style="white-space:pre"> </span><intent-filter>
<span style="white-space:pre"> </span><!-- 接受系統開機廣播 -->
<span style="white-space:pre"> </span><action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.HOME"/>
<span style="white-space:pre"> </span></intent-filter>
</receiver>
<span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; ">需要新增許可權</span>
<span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; "><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/></span><div>
</div><div><span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; ">應用增加廣播</span>
</div><div><span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; ">
</span></div><div><span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; ">/**
* 1.安裝其他應用時會收到廣播,但安裝本應用時不會收到廣播
* 2.重新安裝其他應用時會收到廣播,但重新安裝本應用時不會收到廣播
*/
public class PackageAddedBroadcastReceiver extends BroadcastReceiver {
<span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>public void onReceive(Context context, Intent intent) {
<span style="white-space:pre"> </span>Log.i("CDH", "應用增加廣播");
<span style="white-space:pre"> </span>Log.i("CDH", "包名:"+intent.getDataString());
<span style="white-space:pre"> </span>Log.i("CDH", "使用者ID:"+intent.getIntExtra(Intent.EXTRA_UID, 0));
<span style="white-space:pre"> </span>Log.i("CDH", "重新安裝應用?:"+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false));
<span style="white-space:pre"> </span>}
}
</span></div><div><span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; ">
</span></div><div><span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; "><receiver android:name=".PackageAddedBroadcastReceiver">
<span style="white-space:pre"> </span><intent-filter>
<span style="white-space:pre"> </span><action android:name="android.intent.action.PACKAGE_ADDED"/>
<data android:scheme="package"/>
<span style="white-space:pre"> </span></intent-filter>
</receiver>
</span></div><div><span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; ">
</span></div><div><span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; ">
</span></div>
應用解除安裝廣播
* 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.其他應用重新安裝
收到解除安裝廣播 --> 應用增加廣播 --> 重新安裝廣播
相關文章
- Linux常用幾種shellLinux
- Markdown常用的幾種語法
- 常用的jQuery事件有幾種?jQuery事件
- 幾種常用的排序程式碼排序
- iframe跨域的幾種常用方法跨域
- 幾種常用的排序演算法排序演算法
- 幾種常用資料庫比較資料庫
- 負載均衡的幾種常用方案負載
- 提供介面的幾種常用方式 (二,BeeGo)Go
- 幾種常用程式語言的區別
- js中建立物件的幾種常用方式JS物件
- SQL Server常用的幾種啟動方式SQLServer
- css中常用的幾種居中方法CSS
- C# Modbus協議 幾種常用格式C#協議
- Java幾種常用JSON庫效能比較JavaJSON
- 幾種常用設計模式的簡單示例設計模式
- sqlplus常用的幾種登入方式SQL
- 常用的幾種大資料架構剖析大資料架構
- 簡述幾種常用的排序演算法排序演算法
- Linux埠轉發的幾種常用方法Linux
- 淺談iOS常用的幾種傳值方式iOS
- iOS元件化常用的幾種構建模式iOS元件化模式
- .net內常用的幾種檔案型別型別
- 幾種常用的SQL優化工具及方法SQL優化
- Python教程: 反射及常用的幾種方法Python反射
- Java中幾種常用的RPC框架介紹JavaRPC框架
- JS常用判斷空對像的幾種方法JS
- iOS 開發中 runtime 常用的幾種方法iOS
- 簡單介紹redis加鎖常用幾種方式Redis
- 說一下幾種常用的前端快取前端快取
- javascript中常用的幾種立即執行函式JavaScript函式
- javascript實現的繼承的幾種常用方式JavaScript繼承
- vue3 常用的幾種元件通訊方式Vue元件
- 幾種常用的排序演算法之JavaScript實現排序演算法JavaScript
- 很全!淺談幾種常用負載均衡架構負載架構
- 網路安全中常用的幾種加密方式都有哪些?加密
- js獲取頁面dom元素的幾種常用方式JS
- iOS應用資料儲存的幾種常用方式iOS