华为后台保活
首先明確一個問題——保的什么活?活就是活性,主要有兩點:一、APP的虛擬機進程不被殺死。二、可以執行代碼。
需求就是就么簡單。一個是進程活性,另一個是代碼活性。失去進程活性,APP名存實亡,只存在一點點內存緩存,比直接劃掉好一點點。失去代碼活性,APP丟失權柄,令不出九宮,實際上是被休眠了。
保活手段有三。一、系統設置>>應用啟動管理,勾選允許后臺啟動。二、申請電池優化白名單(inent啟動Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)。三service+通知+循環播放無聲音頻。
華為不可忽略的是手機是否開啟省電模式。如果沒有開啟,那么或許前兩個手段就能達成目的。如果開啟了,那么需要播放無聲音頻,但是手機音量不能為零。否則系統一樣拉你的APP進入休眠,再次亮屏才恢復。
附空白音頻倉庫(沒用的):https://github.com/anars/blank-audio
在線音頻編輯器,可以強行無聲化處理:https://twistedwave.com/online
挺簡單一個功能,怎么就這么難呢?祝愿天底下的shabi阿三漸漸死絕,愿世界越來越美好。
MediaPlayer mMediaPlayer=MediaPlayer.create(this, R.raw.toomuch);mMediaPlayer.setOnCompletionListener(MediaPlayer::start);Equalizer eq = new Equalizer(0, mMediaPlayer.getAudioSessionId());for (int i = 0; i < eq.getNumberOfBands(); i++) {eq.setBandLevel((short)i, (short)1);}mMediaPlayer.setVolume(0.1f, 0.1f);mMediaPlayer.start();太多的借口 太多的理由……
還有wifi保活,不設此,熄屏后半小時左右就會關閉無線網絡:
WifiManager wm = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);wifiLock = wm.createWifiLock(WifiManager.WIFI_MODE_FULL , "MyWifiLock");if(!wifiLock.isHeld()){wifiLock.acquire();}總結
- 上一篇: C语言指针 动画展示 指针到底是什么 指
- 下一篇: 天猫精灵淘公仔、丰厚奖品代金券!只要敢推