手機QQ後台清理不掉的秘密——anddroid懸浮窗,後台anddroid

來源:互聯網
上載者:User

手機QQ後台清理不掉的秘密——anddroid懸浮窗,後台anddroid

問題來自於一篇文章:手機QQ後台為何清不掉?MIUI工程師:全靠1像素的頁面保命

出於好奇,想知道這一像素到底是啥東西,用手機Managed Security Service控制QQ的懸浮窗許可權:

關閉QQ的懸浮窗許可權,通過後台一鍵清理,重新開啟QQ,發現是從splash開始的;

開啟QQ的懸浮窗許可權,一鍵清理後,開啟QQ,發現是直接進入主介面的;說明一鍵清理未清理QQ,或者清理之後,QQ又自啟動了。

至於,是未被清理還是自啟動,後面再探究一下,這裡就說說這個一像素的懸浮窗。

        Button button = new Button(getApplicationContext());        WindowManager wm = (WindowManager) getApplicationContext()                .getSystemService(Context.WINDOW_SERVICE);        WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();        /**         * 以下都是WindowManager.LayoutParams的相關屬性 具體用途請參考SDK文檔         */        wmParams.type = LayoutParams.TYPE_PHONE; // 這裡是關鍵,你也可以試試2003        wmParams.format = PixelFormat.RGBA_8888; // 設定圖片格式,效果為背景透明        /**         * 這裡的flags也很關鍵 代碼實際是wmParams.flags |= FLAG_NOT_FOCUSABLE;         * 40的由來是wmParams的預設屬性(32)+ FLAG_NOT_FOCUSABLE(8)         */        wmParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL                | LayoutParams.FLAG_NOT_FOCUSABLE                | LayoutParams.FLAG_NOT_TOUCHABLE;        wmParams.width = 40;        wmParams.height = 40;        wm.addView(button, wmParams); // 建立View

添加許可權

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

就這麼簡單添加了一個懸浮窗,不管返回launcher還是開啟什麼應用,都會一直顯示這個button。

QQ的這個懸浮窗是做得比較小,應該還是透明的,還會放在靠邊或者角落裡,如果通過這個懸浮窗來保證QQ始終在後台進程,帶我再探究一下。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.