久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Android 監(jiān)聽(tīng)安裝和卸載

 gearss 2016-05-25

Android 應(yīng)用程序的安裝和卸載事件,,是由系統(tǒng)進(jìn)行監(jiān)聽(tīng)并全局廣播的,,支持1.5(android 3)以上

因此,如果想要監(jiān)聽(tīng)獲取應(yīng)用的安裝和卸載事件,,只需要自定義一個(gè)BroadcastReceiver,,來(lái)對(duì)系統(tǒng)廣播進(jìn)行監(jiān)聽(tīng)和處理


BroadcastReceiver 是系統(tǒng)全局廣播監(jiān)聽(tīng)類, 其主要方法是onReceive(),,自定義的廣播類繼承于它并實(shí)現(xiàn)自己的onReceive()處理邏輯

BroadcastReceiver 使用前,,需要進(jìn)行注冊(cè)監(jiān)聽(tīng)(xml和代碼兩種方式),不使用時(shí)需要注銷監(jiān)聽(tīng),,其生命周期一般為整個(gè)應(yīng)用的生命周期


1,, 自定義廣播

自定義廣播MyInstalledReceiver繼承自BroadcastReceiver,實(shí)現(xiàn)其onReceive()方式,,具體代碼如下:

  1. public class MyInstalledReceiver extends BroadcastReceiver {  
  2.     @Override  
  3.     public void onReceive(Context context, Intent intent) {  
  4.   
  5.         if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {     // install  
  6.             String packageName = intent.getDataString();  
  7.   
  8.             Log.i("homer", "安裝了 :" + packageName);  
  9.         }  
  10.   
  11.         if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {   // uninstall  
  12.             String packageName = intent.getDataString();  
  13.   
  14.             Log.i("homer", "卸載了 :" + packageName);  
  15.         }  
  16.     }  
  17. }  


2,, 注冊(cè)監(jiān)聽(tīng)

1) xml 方式

在AndroidManifest.xml 配置文件的Application節(jié)點(diǎn)下,添加自定義的注冊(cè)監(jiān)聽(tīng) MyInstalledReceiver

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas./apk/res/android"  
  3.     package="com.homer.installed"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <application  
  8.         android:icon="@drawable/ic_launcher"  
  9.         android:label="@string/app_name" >  
  10.         <activity  
  11.             android:name=".MainActivity"  
  12.             android:label="@string/app_name" >  
  13.             <intent-filter>  
  14.                 <action android:name="android.intent.action.MAIN" />  
  15.   
  16.                 <category android:name="android.intent.category.LAUNCHER" />  
  17.             </intent-filter>  
  18.         </activity>  
  19.   
  20.         <receiver android:name=".MyInstalledReceiver" >  
  21.             <intent-filter>  
  22.                 <action android:name="android.intent.action.PACKAGE_ADDED" />  
  23.                 <action android:name="android.intent.action.PACKAGE_REMOVED" />  
  24.   
  25.                 <data android:scheme="package" />  
  26.             </intent-filter>  
  27.         </receiver>  
  28.     </application>  
  29.     <uses-sdk android:minSdkVersion="3" />  
  30. </manifest>  
在AndroidManifest.xml 添加的注冊(cè)監(jiān)聽(tīng),,其生命周期默認(rèn)是整個(gè)應(yīng)用的生命周期


2) 代碼方式

一般在Activity的onStart()方法中注冊(cè)監(jiān)聽(tīng),,在onDestroy()方法中注銷監(jiān)聽(tīng)(也可以在onStop()方法中注銷,其生命周期注銷時(shí)結(jié)束)

  1. @Override  
  2. public void onStart(){  
  3.     super.onStart();  
  4.       
  5.     installedReceiver = new MyInstalledReceiver();  
  6.     IntentFilter filter = new IntentFilter();  
  7.       
  8.     filter.addAction("android.intent.action.PACKAGE_ADDED");  
  9.     filter.addAction("android.intent.action.PACKAGE_REMOVED");  
  10.     filter.addDataScheme("package");  
  11.       
  12.     this.registerReceiver(installedReceiver, filter);  
  13. }  
  14.   
  15. @Override  
  16. public void onDestroy(){  
  17.     if(installedReceiver != null) {  
  18.         this.unregisterReceiver(installedReceiver);  
  19.     }  
  20.       
  21.     super.onDestroy();  
  22. }  

以上xml和代碼兩種注冊(cè)方式,,使用時(shí)選擇其一即可,; 

如果同時(shí)使用兩種方式,,則兩種方式都有效,,即一次安裝或卸載均統(tǒng)計(jì)了兩次(重復(fù)統(tǒng)計(jì))



3, 結(jié)果測(cè)試




源碼下載



參考推薦:

Receiving package install and uninstall events

Android BroadcastReceiver(推薦)

Android Manifest.xml 結(jié)構(gòu)詳解

Android Intent Action 大全

intent(google)


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多