實現謠傳QQ中的手段——“1畫素頁面保活”
上篇部落格講了我的保活之旅,這篇說一下“1畫素頁面保活”的具體實現。 第一步,新建一個Activity,作為1畫素頁面的主體,我姑且叫它HooliganActivity:
public class HooliganActivity extends Activity {
private static HooliganActivity instance;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
instance = this;
Window window = getWindow();
window.setGravity(Gravity.LEFT | Gravity.TOP);
WindowManager.LayoutParams params = window.getAttributes();
params.x = 0;
params.y = 0;
params.height = 1;
params.width = 1;
window.setAttributes(params);
}
/**
* 開啟保活頁面
*/
public static void startHooligan() {
Intent intent = new Intent(DWApplication.getAppContext(), HooliganActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
DWApplication.getAppContext().startActivity(intent);
}
@Override
protected void onDestroy() {
super.onDestroy();
instance = null;
}
/**
* 關閉保活頁面
*/
public static void killHooligan() {
if(instance != null) {
instance.finish();
}
}
}
第二步,註冊清單檔案:
<activity android:name=".activity.HooliganActivity"
android:configChanges="keyboardHidden|orientation|screenSize|navigation|keyboard"
android:excludeFromRecents="true"
android:exported="false"
android:finishOnTaskLaunch="false"
android:launchMode="singleInstance"
android:theme="@style/HooliganActivityStyle"/>
<style name="HooliganActivityStyle">
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoDisplay">false</item>
<item name="android:windowDisablePreview">true</item>
</style>
第三步,監聽鎖屏和解鎖通知,不能靜態註冊廣播,只能動態註冊:
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(new BootCompleteReceiver(),filter);
第四步,分別在解鎖和鎖屏時喚醒我的HooliganActivity:
public class BootCompleteReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
HooliganActivity. startHooligan();
} else if(intent.getAction().equals(Intent.ACTION_SCREEN_ON)){
HooliganActivity. killHooligan();
}
}
}
這樣你在後臺每次鎖屏,實際上都會弔起一個一畫素的頁面,假裝app在前臺,擁有最高程式優先順序。
不推薦使用,太流氓了- -!。
技術無罪。
——王欣
但人有罪。
作者:見事遲
連結:http://www.jianshu.com/p/2c4f2586ed6f
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
相關文章
- Flutter頁面保活及保持頁面跳轉位置Flutter
- 直播系統中網頁類似app頁面切換動畫的實現方式網頁APP動畫
- 實現SLIC演算法生成畫素畫演算法
- [MUI] mui框架實現頁面間傳值UI框架
- PHP中實現頁面跳轉PHP
- 模仿qq音樂頁面
- 高效 實現長連線保活:手把手教你實現 自適應的心跳保活機制
- magisk模組 實現app 保活APP
- qq傳輸檔案後win10藍色畫面怎麼修復_win10使用qq傳輸檔案藍色畫面解決方法Win10
- 那些年的QQ空間-從前到後實現圖片上傳(1)
- Spring Boot實現傳送QQ郵件Spring Boot
- 移動端與H5頁面畫素的差異與關係H5
- 影象中的畫素處理
- 【風農翻譯】開始畫畫素畫 #1
- canvas 1px畫素模糊現象解決方案Canvas
- canvas 1px 畫素模糊現象解決方案Canvas
- 關於移動端網頁裡的畫素網頁
- Java實現QQ郵件傳送客戶端Java客戶端
- Flutter 實現底部擴散模糊動畫(二)頁面互動Flutter動畫
- Flutter 實現底部擴散模糊動畫(一)跳轉頁面Flutter動畫
- Django實現圖片上傳並前端頁面顯示Django前端
- 頁面渲染傳參的方式 – Node實戰
- 常用的畫素操作演算法:影像加法、畫素混合、提取影像中的ROI演算法
- 實現不同頁面不同頁首
- Flutter PIP(畫中畫)效果的實現Flutter
- flutter Lottie 動畫引導頁的實現Flutter動畫
- vue中頁面載入進度條效果的實現Vue
- 動畫-CAShapeLayer實現QQ訊息紅點拖拽效果動畫
- asyUI分頁中,如何實現頁面跳轉,再返回時,...UI
- jQuery中動畫的實現jQuery動畫
- 畫素畫裡的孤獨
- [Swift]SpriteKit實現類似畫素鳥的小遊戲 - Crashy PlaneSwift遊戲
- 鴻蒙HarmonyOS實戰-ArkUI動畫(頁面轉場動畫)鴻蒙UI動畫
- 【風農翻譯】畫素寶典 #1:《蔚藍》製作者教你如何做畫素
- 前端頁面水印生成實現前端
- web頁面錄屏實現Web
- Web 頁面如何實現動畫效果Web動畫
- 掌握web開發基礎系列--物理畫素、邏輯畫素、css畫素WebCSS
- canvas畫素畫板Canvas