android長按home鍵
A. android HOME長按之後的鍵值是多少
home鍵在KeyEvent中的鍵值為3.
ublic static final int KEYCODE_HOME = 3;
當用戶按下home鍵的時候(包括長按),程序會進入到PhoneWindowManager.java類中的public boolean interceptKeyBeforeDispatching(WindowState win, int action, int flags,int keyCode, int scanCode, int metaState, int repeatCount, int policyFlags)這個方法中進行處理。如果用戶是連續點擊home,此時就要執行長按home事件了。
即執行mHandler.postDelayed(mHomeLongPress,ViewConfiguration.getGlobalActionKeyTimeout());對應的代碼。也就會跳轉到mHomeLongPress這個Runnable接著往下執行。
interceptKeyBeforeDispatching這個方法位於PhoneWindowManager.java中。
位置為:frameworks.java
(WindowStatewin,intaction,intflags,
intkeyCode,intscanCode,intmetaState,intrepeatCount,intpolicyFlags){
finalbooleandown=(action==KeyEvent.ACTION_DOWN);
...
//4、用戶按下home,然後馬上釋放。此時這個條件成立。將之前postDelayed的事件remove掉。此時就不會執行長按home事件。
if((keyCode==KeyEvent.KEYCODE_HOME)&&!down){
mHandler.removeCallbacks(mHomeLongPress);
}
//5、第一次按下home,mHomePressed為false。
if(mHomePressed){
if(keyCode==KeyEvent.KEYCODE_HOME){
//a、如果用戶連續按下home,此時暫時沒有up事件。所以就不走這里。
//b、如果用戶沒有連續按下home,此時過來的是up(move或者http://www.tiecou.com/)事件。即!down為true,執行該方法
if(!down){
mHomePressed=false;
if(!canceled){
booleanincomingRinging=false;
try{
ITelephonytelephonyService=getTelephonyService();
if(telephonyService!=null){
incomingRinging=telephonyService.isRinging();
}
}catch(RemoteExceptionex){
Log.w(TAG,"()",ex);
}
if(incomingRinging){
Log.i(TAG,"IgnoringHOME;there'saringingincomingcall.");
}else{
//單擊home處理
launchHomeFromHotKey();
}
}else{
Log.i(TAG,"IgnoringHOME;eventcanceled.");
}
}
}
returntrue;
}
...
//1、第一次處理home按下
if(keyCode==KeyEvent.KEYCODE_HOME){
//Ifasystemwindowhasfocus,thenitdoesn'tmakesense
//.
WindowManager.LayoutParamsattrs=win!=null?win.getAttrs():null;
if(attrs!=null){
finalinttype=attrs.type;
if(type==WindowManager.LayoutParams.TYPE_KEYGUARD
||type==WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG){
//the"app"iskeyguard,sogiveitthekey
returnfalse;
}
finalinttypeCount=WINDOW_TYPES_WHERE_HOME_DOESNT_WORK.length;
for(inti=0;i<typeCount;i++){
if(type==WINDOW_TYPES_WHERE_HOME_DOESNT_WORK[i]){
//don'tdoanything,butalsodon'tpassittotheapp
returntrue;
}
}
}
//2、第一次按下home,會調用postDelayed發送一個延時處理的操作。同時將mHomePressed置為true。
//如果第5步沒有進入if(!down),此時就要執行長按home方法了。
if(down&&repeatCount==0){
if(!keyguardOn){
mHandler.postDelayed(mHomeLongPress,ViewConfiguration.getGlobalActionKeyTimeout());
}
mHomePressed=true;
}
returntrue;
}//其他鍵的處理
elseif(...){...}
B. 安卓系統的app,我需要它一直在後台運行,我該怎麼加鎖才可以 關閉其
若是vivo手機,允許軟體一直在後台運行 :
1、進入設置--電池--後台耗電管理--對應軟體--選擇「允許後台高耗電」(部分機型需進入設置--電池--後台高耗電--將對應的軟體開啟);
2、可以進入i管家--應用管理/軟體管理--許可權管理--許可權--自啟動--開啟軟體的自啟許可權;
3、進入多任務卡片界面,下拉軟體加入到加速白名單;
可以參考設置加速白名單的方法:
OriginOS系統:調出卡片式後台,按住後台軟體下滑即可加入白名單;
FuntouchOS10/iQOOUI及以上系統:調出卡片式後台,可按住卡片下拉鎖定,也可以點右上角「=」圖標--選擇鎖定;
FuntouchOS10以下系統:先調出快捷欄,然後按住需要設置白名單的軟體向下拉,點擊該軟體上方的鎖狀圖標,該軟體即會加入白名單。
註:加入白名單後,後台軟體右上角會顯示鎖狀圖標。
4、若軟體被隱藏了,請把軟體取消隱藏或移出原子隱私系統。
註:若是出現因軟體異常佔用內存,被智慧引擎強行關閉的情況,則是軟體自身原因不支持設置。
更多疑惑,可以進入vivo官網--點擊我的—在線客服,輸入「人工」聯系在線客服處理。
C. android手機長按home鍵能起什麼作用
android手機長按home鍵能起作用的作用有以下幾類:
Home鍵可以說是我們每天使用最多的功能之一,一般我們使用這個按鍵多數是用於返回主頁或調出語音助手等等。
各個版本的安卓,常按home鍵,屏幕會出現最近是用過的app程序圖標。
對於安卓4.1來說,則更加明細,即不僅會出現最近用過的aop還會出現,正在後台運行的程序,一個簡單的小窗口即可迅速切換到後台程序。
簡單的理解就是,手機home鍵就是菜單鍵和主鍵。
D. androidtv一直在logo畫面
長按Home鍵。
1、首先接通電源,打開androidtv。
2、然後等待機器啟動,進入logo界面。
3、最後停止在logo界面,長按Home鍵返回主菜單即可。