欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Android 監聽安裝和卸載

系統 2132 0

Android 應用程序的安裝和卸載事件,是由系統進行監聽并全局廣播的,支持1.5(android 3)以上

因此,如果想要監聽獲取應用的安裝和卸載事件,只需要自定義一個BroadcastReceiver,來對系統廣播進行監聽和處理


BroadcastReceiver 是系統全局廣播監聽類, 其主要方法是onReceive(),自定義的廣播類繼承于它并實現自己的onReceive()處理邏輯

BroadcastReceiver 使用前,需要進行注冊監聽(xml和代碼兩種方式),不使用時需要注銷監聽,其生命周期一般為整個應用的生命周期


1, 自定義廣播

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

    public class MyInstalledReceiver extends BroadcastReceiver {
	@Override
	public void onReceive(Context context, Intent intent) {

		if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {		// install
			String packageName = intent.getDataString();

			Log.i("homer", "安裝了 :" + packageName);
		}

		if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {	// uninstall
			String packageName = intent.getDataString();

			Log.i("homer", "卸載了 :" + packageName);
		}
	}
}
  


2, 注冊監聽

1) xml 方式

在AndroidManifest.xml 配置文件的Application節點下,添加自定義的注冊監聽MyInstalledReceiver

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.homer.installed"
    android:versionCode="1"
    android:versionName="1.0" >

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".MainActivity"
            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=".MyInstalledReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />

                <data android:scheme="package" />
            </intent-filter>
        </receiver>
    </application>
    <uses-sdk android:minSdkVersion="3" />
</manifest>
  
在AndroidManifest.xml 添加的注冊監聽,其生命周期默認是整個應用的生命周期


2) 代碼方式

一般在Activity的onStart()方法中注冊監聽,在onDestroy()方法中注銷監聽(也可以在onStop()方法中注銷,其生命周期注銷時結束)

    	@Override
	public void onStart(){
		super.onStart();
		
		installedReceiver = new MyInstalledReceiver();
		IntentFilter filter = new IntentFilter();
		
		filter.addAction("android.intent.action.PACKAGE_ADDED");
		filter.addAction("android.intent.action.PACKAGE_REMOVED");
		filter.addDataScheme("package");
		
		this.registerReceiver(installedReceiver, filter);
	}
	
	@Override
	public void onDestroy(){
		if(installedReceiver != null) {
			this.unregisterReceiver(installedReceiver);
		}
		
		super.onDestroy();
	}
  

以上xml和代碼兩種注冊方式,使用時選擇其一即可;

如果同時使用兩種方式,則兩種方式都有效,即一次安裝或卸載均統計了兩次(重復統計)



3, 結果測試

Android 監聽安裝和卸載



源碼下載



參考推薦:

Receiving package install and uninstall events

Android BroadcastReceiver (推薦)

Android Manifest.xml 結構詳解

Android Intent Action 大全

intent (google)


Android 監聽安裝和卸載


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲欧美综合 | 四虎永久免费地址ww 41.6 | 男女真实有遮挡xx00动态图 | 2019天天干夜夜操 | 成年人看的羞羞网站 | 国产精品美女一区二区 | 久久久精品网 | 国产乱码精品一区二区三上 | 91天堂网 | 亚洲综合久久久久久中文字幕 | 高清性做爰免费无遮挡网站 | 一区二区三区高清在线 | 国产真实乱freesex | 国产精品一区二区三区久久久 | 成人不卡 | 国产精品久久久久久久7电影 | 五月天婷婷在线视频国产在线 | 日韩欧美视频在线 | 国产人成 | 国产片翁熄系列乱在线视频 | 久草在线视频资源 | 欧美黄色网| 日韩在线观看一区二区不卡视频 | wwwav在线 | 久久国产精品久久 | 国产欧美久久一区二区三区 | 亚洲一区二区三区中文字幕 | 欧美一级夜夜爽www 美女污视频网站 | 亚洲精品免费网站 | 91av免费| 欧美亚洲在线视频 | 在线a人片免费观看国产 | 亚洲欧美综合日韩字幕v在线 | 久久久久国产成人精品亚洲午夜 | 欧美视频网站 | 日韩福利视频在线 | 色呦呦tv | 99精品免费视频 | 高清一区二区三区四区五区 | 欧美一区视频 | 色网站免费在线观看 |