zoukankan      html  css  js  c++  java
  • Android 监听程序的安装和卸载

    一、安装和卸载的广播:
          安装程序广播:程序安装完成后会向系统发送一个android.intent.action.PACKAGE_ADDED广播,可通过intent.getDataString()获取所安装的包名
          卸载程序广播:程序卸载完成后会向系统发送一个android.intent.action.PACKAGE_REMOVED广播,可通过intent.getDataString()获得所卸载的包名

    二、存储安装、卸载信息
         一般将安装或卸载的信息存储到sqlite或sharepreference中,便于后续利用。


    三、注册方式:
       方式1:清单文件中
       思路:在AndroidManifest.xml 添加的注册监听,其生命周期默认是整个应用的生命周期。         
       代码:

      

    1 <receiver android:name=".MonitorReceiver" > 
    2       <intent-filter> 
    3             <action android:name="android.intent.action.PACKAGE_ADDED" /> 
    4             <action android:name="android.intent.action.PACKAGE_REMOVED" /> 
    5             <data android:scheme="package" /> 
    6         </intent-filter> 
    7 </receiver> 

       方式2、代码方式中
       思路:一般在Activity的onStart()方法中注册监听,在onDestroy()或onStop()方法中注销监听。
       代码:  

     1             MonitorReceiver receiver;
     2             
     3             @Override 
     4             public void onStart(){ 
     5                 super.onStart(); 
     6                  
     7                 receiver = new MonitorReceiver(); 
     8                 IntentFilter filter = new IntentFilter(); 
     9                  
    10                 filter.addAction("android.intent.action.PACKAGE_ADDED"); 
    11                 filter.addAction("android.intent.action.PACKAGE_REMOVED"); 
    12                 filter.addDataScheme("package"); 
    13                  
    14                 this.registerReceiver(receiver, filter); 
    15             }
    16  
    17             @Override 
    18             public void onDestroy(){ 
    19                 if(receiver != null) { 
    20                     this.unregisterReceiver(receiver); 
    21                 }                 
    22                 super.onDestroy(); 
    23             } 
  • 相关阅读:
    【Android Developers Training】 51. 序言:打印内容
    小米手机开发遇到的问题
    Linux进程的实际用户ID和有效用户ID
    Linux core 文件介绍
    Linux下内存的几个基本概念
    mingw libgcc_s_sjlj-1.dll is missing
    C语言函数申明关键字inline
    关于编译错误--提领指向不完全类型的指针
    linux下创建用户[转]
    Linux查看CPU和内存使用情况[转]
  • 原文地址:https://www.cnblogs.com/zhangping/p/3680874.html
Copyright © 2011-2022 走看看