Android技術點筆記--(安裝應用和卸載應用廣播)

來源:互聯網
上載者:User

標籤:

Android技術點筆記--(安裝應用和卸載應用廣播)


前言:總結Android中安裝應用和卸載應用的廣播使用。

android系統中,安裝和卸載都會發送出相應的廣播,當應用安裝完成後系統會發android.intent.action.PACKAGE_ADDED廣播。

可以通過intent.getDataString()獲得所安裝的包名。卸載程式時系統發android.intent.action.PACKAGE_REMOVED廣播。同樣intent.getDataString()獲得所卸載的包名。可以根據實際需求做相應的操作。


樣本:

建立BroadcastReceiver類,接受相應的廣播並按需求進行處理。

public class MyReceiver extends BroadcastReceiver {                   @Override           public void onReceive(Context context, Intent intent) {           //接收廣播:系統啟動完成後運行程式if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {                     Intent newIntent = new Intent(context, xxxActivity.class);                     newIntent.setAction("android.intent.action.MAIN");                        newIntent.addCategory("android.intent.category.LAUNCHER");                      newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);                        context.startActivity(newIntent);                }        //接收廣播:裝置上新安裝了一個應用程式套件組合後自動啟動新安裝應用程式if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {                    String packageName = intent.getDataString().substring(8);                    System.out.println("---------------" + packageName);            Intent newIntent = new Intent();                    newIntent.setClassName(packageName,packageName+ .MainActivity");                    newIntent.setAction("android.intent.action.MAIN");                             newIntent.addCategory("android.intent.category.LAUNCHER");                             newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);                    context.startActivity(newIntent);                }                //接收廣播:裝置上刪除了一個應用程式套件組合。        if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {                    System.out.println("********************************");                    DatabaseHelper dbhelper = new DatabaseHelper();                    dbhelper.executeSql("delete from xxx");                }    }

註:修改AndroidManifest.xml設定檔

<?xml version="1.0" encoding="UTF-8"?>       <manifest xmlns:android="http://schemas.android.com/apk/res/android"            package="app.ui">    <application>               <receiver android:name=".MyReceiver"                         android:label="@string/app_name">                   <intent-filter>                       <action android:name="android.intent.action.BOOT_COMPLETED"/>                       <category android:name="android.intent.category.LAUNCHER" />                   </intent-filter>            <intent-filter>                    <action android:name="android.intent.action.PACKAGE_ADDED" />                    <action android:name="android.intent.action.PACKAGE_REMOVED" />                    <data android:scheme="package" />       <!-- 注意!! 這句必須要加,否則接收不到BroadCast -->                 </intent-filter>               </receiver>        <activity android:name=".xxxActivity" android:label="XXX">                   <intent-filter>                       <action android:name="android.intent.action.MAIN"/>                       <category android:name="android.intent.category.LAUNCHER"/>                   </intent-filter>               </activity>    </application>    <uses-permission android:name="android.permission.INTERNET" />           <uses-permission android:name="android.permission.RESTART_PACKAGES"/>           <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>       </manifest>




Android技術點筆記--(安裝應用和卸載應用廣播)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.