真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android筆記:WakeLock

import android.app.Service;
import android.content.Context;
import android.os.PowerManager;

/**
 * Wake Lock是一種鎖的機制, 只要有人拿著這個鎖,系統(tǒng)就無法進入休眠,
 * 可以被用戶態(tài)程序和內(nèi)核獲得. 這個鎖可以是有超時的或者是沒有超時的,
 * 超時的鎖會在時間過去以后自動解鎖. 如果沒有鎖了或者超時了, 內(nèi)核就
 * 會啟動休眠的那套機制來進入休眠.
 * 
 * 一、關(guān)于int flags 各種鎖的類型對CPU 、屏幕、鍵盤的影響: 
 * 1.PARTIAL_WAKE_LOCK:保持CPU運轉(zhuǎn),屏幕和鍵盤燈有可能是關(guān)閉的。 
 * 2.SCREEN_DIM_WAKE_LOCK:保持CPU 運轉(zhuǎn),允許保持屏幕顯示但有可能是灰的,允許關(guān)閉鍵盤燈
 * 3.SCREEN_BRIGHT_WAKE_LOCK:保持CPU 運轉(zhuǎn),允許保持屏幕高亮顯示,允許關(guān)閉鍵盤燈 
 * 4.FULL_WAKE_LOCK:保持CPU運轉(zhuǎn),保持屏幕高亮顯示,鍵盤燈也保持亮度 
 * 5.ACQUIRE_CAUSES_WAKEUP:Normal wake locks don't
 * actually turn on the illumination. Instead, they cause the illumination to
 * remain on once it turns on (e.g. from user activity). This flag will force
 * the screen and/or keyboard to turn on immediately, when the WakeLock is
 * acquired. A typical use would be for notifications which are important for
 * the user to see immediately. 
 * 6.ON_AFTER_RELEASE:f this flag is set, the user
 * activity timer will be reset when the WakeLock is released, causing the
 * illumination to remain on a bit longer. This can be used to reduce flicker if
 * you are cycling between wake lock conditions.
 * 
 * 你能加兩個以上的標(biāo)志,這些僅能影響屏幕的行為。這些標(biāo)志當(dāng)組合中有一個PARTIAL_WAKE_LOCK時將沒有效果。
 * 
 * 二、權(quán)限獲取 要進行電源的操作需要在AndroidManifest.xml中聲明該應(yīng)用有設(shè)置電源管理的權(quán)限。 
 *  
 * 你可能還需要 
 * 
 * 
 * 三、WakeLock的設(shè)置是 Activiy 級別的,不是針對整個Application應(yīng)用的。
 * 
 **/

abstract class WakeLockService extends Service
{
    private android.os.PowerManager.WakeLock mWakeLock;
    
    WakeLockService()
    {
    }
    
    /**
     * 獲取鎖,保持屏幕亮度。 Android中通過各種Lock鎖對電源進行控制,需要注意的是加鎖和解鎖必須成對出現(xiàn)。
     * 一般使用:這個函數(shù)在Activity的 onResume中被調(diào)用。releaseWakeLock()方法則是釋放該鎖,在Activity的onPause中被調(diào)用。
     */
    protected void acquireWakeLock()
    {
        if (mWakeLock == null)
        {
            //通過PowerManager的newWakeLock((int flags, String tag)方法來生成WakeLock實例。 
            //int Flags指示要獲取哪種WakeLock,不同的Lock對cpu、屏幕、鍵盤燈有不同影響。
            PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
            mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, getClass().getCanonicalName());
            mWakeLock.setReferenceCounted(false);
            mWakeLock.acquire();
        }
    }
    
    protected void acquireWakeLock(long timeout)
    {
        if (mWakeLock == null)
        {
            PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
            mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, getClass().getCanonicalName());
            mWakeLock.setReferenceCounted(false);
            mWakeLock.acquire(timeout);
        }
    }
    
    /**
     * 釋放鎖,顯示的釋放,如果申請的鎖不釋放系統(tǒng)就不會進入休眠。
     */
    protected void releaseWakeLock()
	{
		
		if(mWakeLock == null || !mWakeLock.isHeld())
		{
		    mWakeLock.release();
		    mWakeLock = null;
		}
	}
}

創(chuàng)新互聯(lián)是專業(yè)的黃石網(wǎng)站建設(shè)公司,黃石接單;提供網(wǎng)站設(shè)計制作、做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行黃石網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!


網(wǎng)站標(biāo)題:Android筆記:WakeLock
文章鏈接:http://weahome.cn/article/jejppd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部