我正在研究每秒發出一聲蜂鳴聲的應用程序。當我點擊主頁按鈕時,我想讓它關閉程序並停止發出嗶嗶聲。現在它關閉了程序,但仍然發出嘟嘟聲。Android停止計數器和銷燬媒體播放器
我在做什麼錯?
if ((keyCode == KeyEvent.KEYCODE_HOME)) {
isdone = true;
mp.release();
counter.cancel();
finish();
}
我正在研究每秒發出一聲蜂鳴聲的應用程序。當我點擊主頁按鈕時,我想讓它關閉程序並停止發出嗶嗶聲。現在它關閉了程序,但仍然發出嘟嘟聲。Android停止計數器和銷燬媒體播放器
我在做什麼錯?
if ((keyCode == KeyEvent.KEYCODE_HOME)) {
isdone = true;
mp.release();
counter.cancel();
finish();
}
當我打的主頁按鈕,我希望它 關閉程序並停止蜂鳴聲。
您無法攔截應用程序代碼中的HOME按鈕 - 抱歉!
您不能直接攔截HOME按鈕,儘管解決方法是讓您的應用程序開始活動爲HOME意向/默認家庭活動;在你的XML清單,這將是這樣的:
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
因此,當用戶按下主頁按鈕,你會引導用戶到你的應用程序的啓動活動,從這裏你可以他重定向到任何其他先前的活動,即通過預先保存用戶的狀態。 在上面提到的活動中,如果發出嘟嘟聲,應將停止命令放在onPause或onWindowFocusChanged中。
上述方法僅在某些情況下才有意義,並取決於您的應用程序邏輯/業務案例和您要部署的環境。
我們在應用程序中使用這種方法(處理home按鈕),我們的應用程序將始終與設備捆綁在一起並分發。所以我們完全控制了設備設置。當您將自己的活動設置爲默認家庭活動時,用戶最初將獲得一個選項屏幕,其中包含哪個活動應該處理家庭意圖(默認的Android家庭或您的應用活動)。然後用戶可以選擇,也可以選中一個複選框,以便在未來再次使用此活動作爲默認活動。
對於公共市場上的一般應用程序,這可能不是最好的方式,因爲它不會很麻煩,也不是很好的屏幕流/用戶體驗。 對於您完全控制的應用程序,這可能是一個合適的解決方法。
如果你確實想捕捉HOME按鈕,你需要修改android操作系統,它在android.policy.jar中的PhoneWindowManager.java類中。 但是,如果您完全控制設備,並且將設備捆綁到設備上,或者它是將設備交付給用戶並控制您部署哪個ROM的內部應用程序,這也是唯一有意義的。
還有約上的主頁按鈕的進一步聯繫了有益的探討: http://www.anddev.org/home_menu_button-t10232.html
是不是你活動的onPause()
方法稱爲當你點擊home鍵?
你可以殺死那裏的櫃檯。不要自己殺死這個活動,系統會在適當的時候爲你做這件事。