日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > 綜合技術 > Android官方開發(fā)文檔Training系列課程中文版:電池續(xù)航時間優(yōu)化之監(jiān)測電池電量及充電狀態(tài)

Android官方開發(fā)文檔Training系列課程中文版:電池續(xù)航時間優(yōu)化之監(jiān)測電池電量及充電狀態(tài)

來源:程序員人生   發(fā)布時間:2016-11-21 08:35:53 閱讀次數:2555次

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/index.html

引言

作為1款優(yōu)秀的APP利用,應當總是千方百計的下降電量的消耗。通過這節(jié)課的學習,你將有能力使APP可以基于裝備的狀態(tài)來調劑APP的功能及行動。

我們可以通過比如在斷開連接時關閉后臺服務,或在電量低的時候下降更新的頻率等等手段來下降電量的消耗。

監(jiān)測電池電量及充電狀態(tài)

在更改后臺的更新頻次時,檢查當前的電池電量及充電狀態(tài)是我們先要做的。

利用程序的更新頻率取決于電池的電量和充電狀態(tài)。由于裝備處于充電狀態(tài)時利用的耗電量幾近可以疏忽,所以,在裝備連接到充電器時,你可以將利用的刷新頻率開到最大,如果裝備沒有在充電,那末下降更新頻率可以延長電池的使命時間。

檢查當前的充電狀態(tài)

首先我們需要檢查當前的充電狀態(tài)。BatteryManager會將電池信息和充電信息通過粘性Intent將其廣播。

由于是粘性Intent,所以不需要注冊BroadcastReceiver,只需要在調用registerReceiver()時傳1個null就能夠,當前的電池狀態(tài)由該方法直接返回。你也能夠在這里傳遞1個BroadcastReceiver對象,但是我們接下來的處理方式其實不是在其中做的,所以這其實不是必須的。

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); Intent batteryStatus = context.registerReceiver(null, ifilter);

如果裝備當前處于充電狀態(tài),那末可以取得當前的充電狀態(tài),不管它是通過USB還是通過AC適配器充電的。

// Are we charging / charged? int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL; // How are we charging? int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;

通常的做法是:應當是在連接到AC電源適配器時,將后臺的更新頻率加到最大,如果當前處于USB狀態(tài),這個頻率應當適當下降,如果斷開充電,則應當進1步下降。

監(jiān)測充電狀態(tài)的變化

裝備的充電狀態(tài)很容易隨著充電器的插入、拔出而產生變化。所以隨著充電狀態(tài)的變化應當相應的調劑利用的刷新頻率。

當裝備插上充電器或是拔出充電器時,BatteryManager都會廣播1個Action,所以應當注冊1個BroadcastReceiver用來監(jiān)聽這些事件。在清單文件中需要定義ACTION_POWER_CONNECTED及ACTION_POWER_DISCONNECTED的意圖過濾器。

<receiver android:name=".PowerConnectionReceiver"> <intent-filter> <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/> <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/> </intent-filter> </receiver>

在該BroadcastReceiver內,你可以獲得當前的充電狀態(tài):

public class PowerConnectionReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1); boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL; int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC; } }

檢查電池的剩余電量

在1些情況下還需要檢查裝備的剩余電量。當電量較低時可能需要下降利用的后臺服務頻率。

你可以通過以下方式取得裝備的剩余電量:

int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1); float batteryPct = level / (float)scale;

監(jiān)測電量的重要變化

利用不能1直連續(xù)不斷的監(jiān)聽電池的狀態(tài)。

通常來講,1直不斷的監(jiān)聽電池電量會使監(jiān)聽電池的任務大于利用的實際任務,所以最好是只監(jiān)聽1些比較重要的變更事件。

下面的清單文件摘自1段廣播接收器內。該廣播接收器會在電池的電量很低時或是在電量恢復到安全水平時被觸發(fā)。它監(jiān)聽了兩個事件:ACTION_BATTERY_LOW及ACTION_BATTERY_OKAY.

<receiver android:name=".BatteryLevelReceiver"> <intent-filter> <action android:name="android.intent.action.ACTION_BATTERY_LOW"/> <action android:name="android.intent.action.ACTION_BATTERY_OKAY"/> </intent-filter> </receiver>

通常情況下,在電量很低時要關閉所有的后臺更新。加載在使用APP之前,手機關機了,那末利用的數據是不是是最新的就沒那末重要了。

在很多情況下,手機充電時是被放在1個固定的位置上的。下節(jié)課我們將會學習如何檢查裝備的放置環(huán)境和如何監(jiān)測裝備的放置狀態(tài)。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91国内精品久久 | 不卡一区 | 蜜桃永久免费 | 欧美午夜一区二区福利视频 | 日韩一区二区三区电影 | 久久久精品成人 | 一区二区三区免费观看 | 日日日干干干 | 综合伊人av| 成人一区二区在线 | 99久久久国产精品免费调教网站 | 中文字字幕一区二区三区四区五区 | 精品99在线观看 | 精品国产网站 | 欧美日韩国产二区 | 欧美一区二区人人喊爽 | 国产羞羞视频在线观看 | 狠狠久久综合 | 激情五月婷婷综合网 | 亚洲不卡电影 | 国产欧美久久久久久 | 免费看黄色网 | 欧美日韩亚洲不卡 | 日韩综合在线 | 久久一级大片 | 国产一区二区三区精品在线观看 | 亚洲一区二区高清 | 久久久久无码国产精品一区 | 亚洲精品一区二区三区中文字幕 | 可以免费看的av | 综合久久综合 | 国产日韩在线视频 | 日韩免费精品视频 | 久久精选视频 | 性一区| 国产1区在线 | 精品国产免费久久久久久尖叫 | 中文字幕精品一区 | 欧美在线国产 | 国产丝袜一区二区三区免费视频 | 精品无码久久久久久国产 |