欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 精品亚洲一区二区三区四区五区 | 欧美手机在线观看 | 久久久精品免费观看 | 91婷婷射| 国产精品视频播放 | 日韩一页 | 亚洲12p| 亚洲精品一区中文字幕乱码 | 91中文在线观看 | 欧美亚洲国产第一页草草 | 性做久久久久久免费观看欧美 | 欧美最新一区二区三区四区 | 国产v欧美v日本v精品 | 亚洲免费av在线 | 国产精品久久久久aaaa九色 | 国内精品久久久久久99蜜桃 | 亚洲精品乱码久久久久久v 国产高清免费视频 | 91成人在线免费 | 亚洲欧美日韩中文字幕在线一区 | 国产一区二区三区视频 | www欧美视频 | 99精品在线观看视频 | 亚洲精品人成网在线播放影院 | 99色综合 | 视频一区 中文字幕 | 欧美三级 在线播放 | 欧美亚洲一区二区三区四区 | 亚洲成人观看 | 日韩成人av在线 | 全部三片在线观看直播 | 三级日韩| 欧美人妖channelsantini同性 | 久久99深爱久久99精品 | 四虎永久免费网站入口2020 | 成人颜色视频 | 国产精品2区| 成人午夜大片 | 蜜桃av一区二区三区 | 久久狠狠一本精品综合网 | 91久久久久 | 五月天91|