Android 遮蔽Back鍵,監聽Home鍵
app進入的時候我們會看到一個閃屏頁,這個閃屏頁做起來很簡單,但是閃屏頁一般需要遮蔽返回鍵,去監聽一下Home鍵,為什麼需要這樣考慮呢?我們先看程式碼吧。
SplashActivity
public class SplashActivity extends Activity {
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this .requestWindowFeature(Window.FEATURE_NO_TITLE);
//充滿螢幕
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_splash);
//註冊廣播
registerReceiver(mHomeKeyEventReceiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
new Thread(new Runnable() {
@Override
public void run() {
handler.sendEmptyMessageDelayed(0x1, 2000);
}
}).start();
handler=new Handler(){
public void handleMessage(android.os.Message msg) {
if (msg.what==0x1){
startActivity(new Intent(SplashActivity.this, MainActivity.class));
SplashActivity.this.finish();
}
};
};
}
看程式碼知道,我們new Thread()的時候會建立一個子執行緒,如果我們按下很快的返回鍵或者按下home鍵(沒有超過2秒),這時候程式退出了,但是這個執行緒沒有結束,還在執行。那麼這時候會跳到MainActiivty,如果使用者看到了此情況,會不會很納悶呢?怎麼解決這個問題?一般做閃屏頁的話,我們需要遮蔽返回鍵,監聽一下Home鍵;
//遮蔽返回鍵
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode==KeyEvent.KEYCODE_BACK)
{
return true;
}
return false;
}
KeyEvent.KEYCODE_HOME這個方法壓根不管用,監聽不到Home鍵。我們 監聽Home鍵的時候,需要註冊一個廣播監聽是否按下Home鍵;
監聽Home鍵:
private final BroadcastReceiver mHomeKeyEventReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
//Intent.ACTION_CLOSE_SYSTEM_DIALOGS判斷是否為home鍵
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)){
//退出程式,釋放資源
System.exit(0);
}
}
};
//當程式銷燬的時候,登出這個廣播
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
unregisterReceiver(mHomeKeyEventReceiver);
}
如果大家覺得哪裡不對的話,可以反映一下,大家一起學習;
轉載請註明出處!
相關推薦
Android 遮蔽Back鍵,監聽Home鍵
app進入的時候我們會看到一個閃屏頁,這個閃屏頁做起來很簡單,但是閃屏頁一般需要遮蔽返回鍵,去監聽一下Home鍵,為什麼需要這樣考慮呢?我們先看程式碼吧。 SplashActivity public class SplashActivity exten
android 在fragment中如何監聽返回鍵,home鍵
在activity中用keydown很容易實現對返回鍵的監聽,但是這個函式不能再fragment中過載。 通過我嘔心瀝血的尋找,終於找到了解決辦法,對其他物理按鍵的監聽也同理。 Java程式碼 public class phonerecorder exten
Android監聽Home鍵、鎖屏、解屏(落雨敏詳細講解)附原始碼
前言:最近做視訊播放,發現當在播放時點選電源鍵進行鎖屏,視訊繼續播放問題,於是通過廣播進行監聽。廣播監聽可以用於很多地方,在此落雨敏詳細講解Home鍵、鎖屏、解屏的事件處理。先講解思路,然後在一步一步實現,下面會貼出所有程式碼。 &nbs
Android完美解決監聽home鍵
以下兩種方法可以完美解決監聽back鍵,home鍵,多工鍵(最近任務鍵)。 一、使用註冊廣播監聽home鍵、多工鍵 演示圖 建立一個廣播程式碼如下: class InnerRecevier extends BroadcastRec
android 監聽Home鍵和亮滅屏
1.註冊廣播 IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_CLOS
手機影音第十天,控制屏幕上下滑動改變音量變化,監聽物理鍵改變音量
滑動屏幕改變音量大小 物理鍵的增大、減小改變音量與seekbar的進度條 代碼已托管至碼雲上,有興趣的小夥伴可以下載看看,IDE是Android studio 2.3.2 https://git.oschina.net/joy_yuan/MobilePlayer 常
android設定軟鍵盤搜尋鍵以及監聽搜尋鍵點選時發生兩次事件的問題解決
在輸入框中加入android:imeOptions="actionSearch",呼叫軟鍵盤時,回車鍵就會顯示搜尋二字。 我想在點選搜尋時,跳轉到下一個頁面,但是呼叫setOnKeyListener,每次都執行兩次。最後上網看到別人的文章,解決了問題,解決方法是呼叫se
H5_0003:JS禁用調試,禁用右鍵,監聽F12事件的方法
amp log rom 條件 wid turn ref return text 1,禁用調試 // 這個方法是防止惡意調試的 (function () { console["log"]("============================
Android 改寫返回鍵事件監聽,使得back鍵功能類似home鍵,讓Acitivty退至後臺時不被系統銷燬
現在很多程式要求back鍵不是退出程式而是像home鍵一樣讓Acitivty退至後臺時不被系統銷燬,查到的資料大多說都是繼承activity的沒有繼承TabActivity, TabActivity和activity不能一樣處理,廢話不多說了上程式碼。 繼承activity
Android Back鍵與Home鍵的監聽
package com.mengdd.hellohome; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.ut
ANDROID 返回,選單和HOME鍵的監聽
------網上找了很多資料,專案中使用,最後將經驗總結如下: 1,返回和選單鍵是可以直接重寫onKeyDown(int keyCode, KeyEvent event) 方法監聽: @Overridepublic boolean onKeyDown(int keyC
實戰Android:通過BroadcastReceiver監聽Home,電源Power,和音量變化Volume鍵
上一個例子是採用AccessibilityService來實現按鍵的監聽。這次我們採用BroadcastReceiver來完成按鍵的監聽。 缺點:我嘗試了一下,暫時還不知道如何停止按 鍵的預設行為,比如我確實監聽到了電源按鍵,但卻沒法阻止此刻螢幕變黑的行為。先在這記下。以後
ReactNative Android監聽返回鍵,在某個頁面返回鍵退出應用
在之前專案中,在進行返回鍵退出應用時,應用的程式碼如下: componentWillMount() { if (Platform.OS === 'android') { BackHandler.addEventListener('hardwa
Android 如何監聽返回鍵,彈出一個退出對話方塊
Android 如何監聽返回鍵點選事件,並建立一個退出對話方塊, 防止自己寫的應用程式不小心點選退出鍵而直接退出。自己記錄下這個簡單的demo,備用。 注:如下程式碼當時是從網上copy過來的,現在忘了它出自哪個原作者了,在此說聲抱歉。 原始碼如下: public cla
Android中監聽"電源鍵長按"、"Home鍵"、"Home鍵長按"
Android中監聽"電源鍵長按"、"Home鍵"、"Home鍵長按" 這幾個“按鈕”的觸發,都會產生一個Action ==Intent.ACTION_CLOSE_SYSTEM_DIALOGS的通知 區分他們三個的不同事件的引數,就是隨著Intent帶過來的reason字串,分別對應
Android開發 之 監聽返回鍵,彈出一個退出對話方塊
Android 如何監聽返回鍵點選事件,並建立一個退出對話方塊,防止自己寫的應用程式不小心點選退出鍵而直接退出。 自己記錄下這個簡單的demo,備用。 注:如下程式碼當時是從網上copy過來的,現在忘了它出自哪個原作者了,在此說聲抱歉。 原始碼如下: public
Unity3D與Android專案互動中無法監聽back鍵返回的解決辦法
這兩天為解決unity3d與android專案整合中出現的無法監聽真機back實體鍵的問題找了很多資料,網上也有很多人遇到了這個問題,但是似乎都沒找到有效的解決方法。 實現的效果是從A_Activity跳轉到UnityPlayerNativeActi
Android監聽返回鍵、Menu鍵、Home鍵、
back鍵 監聽back鍵還是很簡單的,有兩種方法: 呼叫onBackPressed()方法:呼叫此方法會自動呼叫finish()。 @Override public void onBackPressed() { statement /
Android通過Intent.ACTION_CLOSE_SYSTEM_DIALOGS監聽Home按鍵消息
後門 str eve log reason anr rri dem .sh Android對屏幕下方經常使用的四個按鍵消息處理是不一致的: 1、搜索按鍵的消息在onKeyDown或者onKeyUp中接收; 2、菜單按鍵的消息在onCreateOptionsMen
Android關於專案中遇到的按home鍵退出到桌面,再次開啟重新啟動程式的解決方法
我的專案是使用高德地圖做交通類的,主要是Activity和Fragment之間的切換。 我遇到的問題是:我在執行打包後的apk時,進入程式後,無論在哪個介面按home鍵回到桌面,當再次開啟需要重新啟動而不是回到開啟之前的操作介面;而在程式碼除錯的時候不會出現這種問題。 解決方法:在網上搜了好