android應用安裝成功之後刪除apk檔案
阿新 • • 發佈:2019-01-01
[摘要:題目: 正在運用開闢中碰到須要如許的需供:正在使用者下載我們的運用裝置以後刪除裝置包。 辦理: android會正在每一箇中界操縱APK的舉措以後收回體系級其餘播送,過濾器稱號:]
問題:
在應用開發中遇到需要這樣的需求:在使用者下載我們的應用安裝之後刪除安裝包。
解決:
android會在每個外界操作APK的動作之後發出系統級別的廣播,過濾器名稱: android.intent.action.package_ADDED,
android.intent.action.PACKAGE_REMOVED,
需要注意點的是在涉及到儲存卡狀態改變的時候必須新增
<data android:scheme="package" >
我們要做的就是在應用AndroidManifest中註冊靜態廣播,並在自定義的廣播裡處理相應的邏輯:
- 1.
<receiver
android:name="com.example.testdeleteapk.receiver.InitApkBroadCastReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
這樣,在應用安裝成功後就會接受到相應的廣播。廣播定義如下:
package com.example.testdeleteapk.receiver;
import Java.io.File;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Environment;
public class InitApkBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())) {
system.out.println("監聽到系統廣播新增");
}
if (Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())) {
System.out.println("監聽到系統廣播移除");
}
if (Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())) {
System.out.println("監聽到系統廣播替換");
}
}
}