国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程監聽APK安裝與刪除等過程的方法

2019-12-12 01:54:46
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程監聽APK安裝與刪除等過程的方法。分享給大家供大家參考,具體如下:

軟件下載后的一系列動作監聽:先前是通過Service監聽掃描獲取狀態,以后用這個方法測試使用

import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class getBroadcast extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {         if(Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())){          Toast.makeText(context, "有應用被添加", Toast.LENGTH_LONG).show();      }        else if(Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())){          Toast.makeText(context, "有應用被刪除", Toast.LENGTH_LONG).show();      }       /*  else if(Intent.ACTION_PACKAGE_CHANGED.equals(intent.getAction())){          Toast.makeText(context, "有應用被改變", Toast.LENGTH_LONG).show();      }*/        else if(Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())){          Toast.makeText(context, "有應用被替換", Toast.LENGTH_LONG).show();      }        /* else if(Intent.ACTION_PACKAGE_RESTARTED.equals(intent.getAction())){          Toast.makeText(context, "有應用被重啟", Toast.LENGTH_LONG).show();      }*/       /* else if(Intent.ACTION_PACKAGE_INSTALL.equals(intent.getAction())){          Toast.makeText(context, "有應用被安裝", Toast.LENGTH_LONG).show();      }*/    }}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"   package="zy.Broadcast"   android:versionCode="1"   android:versionName="1.0">  <application android:icon="@drawable/icon" android:label="@string/app_name">    <activity android:name=".Broadcast"         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="getBroadcast" android:enabled="true" >     <intent-filter>     <action android:name="android.intent.action.PACKAGE_ADDED"></action>     <!-- <action android:name="android.intent.action.PACKAGE_CHANGED"></action>-->     <action android:name="android.intent.action.PACKAGE_REMOVED"></action>     <action android:name="android.intent.action.PACKAGE_REPLACED"></action>     <!-- <action android:name="android.intent.action.PACKAGE_RESTARTED"></action>-->    <!--  <action android:name="android.intent.action.PACKAGE_INSTALL"></action>-->      <data android:scheme="package"></data>       </intent-filter></receiver>  </application>  <uses-sdk android:minSdkVersion="7" /></manifest>

代碼實現添加:

private final BroadcastReceiver apkInstallListener = new BroadcastReceiver() {    @Override    public void onReceive(Context context, Intent intent) {      if(Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())){      System.out.println("**************Broadcase*************");      File file = uninstallApk.get(isDeleted);      System.out.println(file.toString()+"*****");       file.delete();        //System.out.println(uninstallApk.size()+"(*******"+uApks.size());       if(uninstallApk!=null&&uApks!=null)       {       uninstallApk.remove(isDeleted);       uApks.remove(isDeleted);       }      //清除集合里面的值        if(uninstallApk!=null)        {         System.out.println("onpause******"+uninstallApk.size());         uninstallApk.clear();        }        if(uApks!=null)        {         uApks.clear();        }          System.out.println("******應用添加***"+isDeleted);       Toast.makeText(context, "有應用被添加"+isDeleted, Toast.LENGTH_LONG).show();      }        else if(Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())){          System.out.println("*****應用被刪除");         Toast.makeText(context, "有應用被刪除", Toast.LENGTH_LONG).show();      }       /*  else if(Intent.ACTION_PACKAGE_CHANGED.equals(intent.getAction())){          Toast.makeText(context, "有應用被改變", Toast.LENGTH_LONG).show();      }*/        else if(Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())){          System.out.println("****應用被替換");         Toast.makeText(context, "有應用被替換", Toast.LENGTH_LONG).show();      }        /* else if(Intent.ACTION_PACKAGE_RESTARTED.equals(intent.getAction())){          Toast.makeText(context, "有應用被重啟", Toast.LENGTH_LONG).show();      }*/       /* else if(Intent.ACTION_PACKAGE_INSTALL.equals(intent.getAction())){          Toast.makeText(context, "有應用被安裝", Toast.LENGTH_LONG).show();      }*/  }};// 注冊監聽private void registerSDCardListener(){    IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_MOUNTED);    intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);    intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);    intentFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);    intentFilter.addDataScheme("package");    registerReceiver(apkInstallListener, intentFilter);}

java里的調用 registerSDCardListener()

@Overrideprotected void onDestroy(){ super.onDestroy(); //unregisterReceiver(apkInstallListener);}

更多關于Android相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五指山市| 鄱阳县| 陇川县| 武威市| 石家庄市| 隆安县| 县级市| 北海市| 汽车| 灵宝市| 雷州市| 阜宁县| 峡江县| 寻乌县| 奉贤区| 闽清县| 澳门| 林周县| 米林县| 威远县| 平度市| 丹东市| 那曲县| 龙井市| 兴隆县| 巢湖市| 西畴县| 古田县| 武定县| 西林县| 临清市| 平江县| 枞阳县| 克什克腾旗| 景洪市| 通州市| 巫山县| 调兵山市| 耿马| 广宗县| 理塘县|