導航:首頁 > 操作系統 > androidhome鍵廣播

androidhome鍵廣播

發布時間:2022-06-17 00:09:34

android 打開廣播耗電嗎

關於耗電的問題,是多種原因引起的,其中最主要的原因是有些應用不能正常退出,一直在後台運行。請進入設置-電量,查看哪些應用消耗了過多的電量。可以在桌面長按home鍵,清除不需要在後台運行的程序,這樣可以顯著減少電量的消耗。

② Android怎樣通過廣播機制喚醒後台服務呢

如果是長按home鍵然後清掉,沒法喚醒。有些手機點擊彈出已運行的app,用手抹掉app後,也沒法喚醒。用360等清理內存後,沒法喚醒。

③ Android監聽Home鍵和Back鍵的區別介紹

一:Android 中Home鍵監聽和Back鍵監聽的區別:
(1).在Android中,當按下Home鍵的時候,默認情況下Stop前台的Activity,即Activity設置成停止狀態【onStop()】,而不是銷毀狀態【onDestory()】。如果再次啟動該Activity,不是調用onCreate()方法,而是調用onSavedInstanceState方法。則是從onRestart()開始-onStart()-onResume()。
(2).當按下back鍵則不同,back鍵默認finish前台的activity,即activity的狀態為onDestory為止,再次啟動該activity則從onCreate開始,不會調用onSavedInstanceState方法。
總而言之:按下Home鍵會返回桌面,而back則會返回前一個activity。
在這里Back鍵的實現方法就不贅述了,主要講解一下Home鍵的實現方式吧。以下是我找的參考資料自己思考的。請大家給出建議。
Home鍵監聽的實現方法:
(1).在onResum裡面注冊廣播,OnPause裡面注銷廣播。
(2).在廣播中攔截Intent.ACTION_CLOSE_SYSTEM_DIALOGS 這個Action ,通過獲取Reason欄位 來判斷長按 還是單擊Home鍵。
代碼如下:
(1).Home鍵監聽封裝類:

package com.scd.homewatcher.util;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.Log;

/**
* Home鍵監聽封裝
*
* @author way
*
*/
public class HomeWatcher {

// 回調介面
public interface OnHomePressedListener {

public void onHomePressed();

public void onHomeLongPressed();
}

private static final String TAG = "HomeWatcher";
/** 上下文 */
private Context mContext;
/** 過濾器 */
private IntentFilter mFilter;
/** 介面 */
private OnHomePressedListener mListener;
/** 廣播接收者 */
private InnerRecevier mRecevier;

public HomeWatcher(Context context) {
mContext = context;
mRecevier = new InnerRecevier();
mFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
}

/**
* 設置監聽
*
* @param listener
*/
public void setOnHomePressedListener(OnHomePressedListener listener) {
mListener = listener;
}

/**
* 開始監聽,注冊廣播
*/
public void startWatch() {
if (mRecevier != null) {
mContext.registerReceiver(mRecevier, mFilter);
}
}

/**
* 停止監聽,注銷廣播
*/
public void stopWatch() {
if (mRecevier != null) {
mContext.unregisterReceiver(mRecevier);
}
}

/**
* 廣播接收者
*/
private class InnerRecevier extends BroadcastReceiver {
final String SYSTEM_DIALOG_REASON_KEY = "reason";
final String SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS = "globalactions";
final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";
final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (reason != null) {
Log.i(TAG, "action:" + action + ",reason:" + reason);
if (mListener != null) {
if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
// 短按home鍵
mListener.onHomePressed();
} else if (reason
.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {
// 長按home鍵
mListener.onHomeLongPressed();
}
}
}
}
}
}
}

(2).MainActivity類:

package com.scd.homewatcher;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.Toast;

import com.scd.homewatcher.util.HomeWatcher;
import com.scd.homewatcher.util.HomeWatcher.OnHomePressedListener;

public class MainActivity extends Activity implements OnHomePressedListener {
private HomeWatcher mHomeWatcher;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

}

@Override
protected void onResume() {
mHomeWatcher = new HomeWatcher(this);
mHomeWatcher.setOnHomePressedListener(this);
// 注冊廣播
mHomeWatcher.startWatch();
super.onResume();
}

@Override
protected void onPause() {
mHomeWatcher.setOnHomePressedListener(null);
// 注銷廣播
mHomeWatcher.stopWatch();
super.onPause();
}

@Override
public void onHomePressed() {
// TODO
Toast.makeText(this, "短按Home鍵,實現自己的邏輯", Toast.LENGTH_SHORT).show();

}

@Override
public void onHomeLongPressed() {
// TODO
Toast.makeText(this, "長按Home鍵,實現自己的邏輯", Toast.LENGTH_SHORT).show();

}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
System.out.println("按下了back鍵 onKeyDown()");
return false;
} else {
return super.onKeyDown(keyCode, event);
}

}

@Override
public void onBackPressed() {
// super.onBackPressed()會自動調用finish()方法,關閉
super.onBackPressed();
}

}

④ 如何讓我的back鍵和home鍵功能相同 android

以前行,現在不行了。在onkeydown中可以攔截 back鍵。然後對他進行你自己的操作。但是home鍵不行了。只能用廣播來監聽。但是廣播只是告訴你他點擊了home鍵。做不了什麼。但是你可以在這個時候跳轉到你自己的界面。而back也跳轉到你自己的界面。手機打字,求採納

⑤ Android中調用系統攝像頭的拍照頁面,能屏蔽home鍵嗎

home 鍵程序獲取直接由系統響應處理home鍵發廣播即用戶點home Android系統發廣播接收廣播並處理邏輯

⑥ 簡述在android中如何發送廣播消息

  1. 首先要聲明廣播


=newBroadcastReceiver()

{

@Override

publicvoidonReceive(Contextcontext,Intentintent)//onReceive函數不能做耗時的事情,參考值:10s以內

{

Log.d("scott","onreceiveaction="+intent.getAction());

Stringaction=intent.getAction();

if(action.equals("com.scott.sayhi"))

{

showDialog("onreceiveaction="+intent.getAction());

}

}

};

2.其次要注冊廣播,有兩種方式:xml注冊和代碼注冊


xml注冊:

<receiver android:name="com.scott.sayhi.MyBroadcastReceiver" >
<intent-filter>
<action android:name="com.scott.sayhi" />
</intent-filter>
</receiver>


代碼注冊:

IntentFilter filter = new IntentFilter();
filter.addAction("com.scott.sayhi");
MyActivity.this.registerReceiver(mBroadcastReceiver, filter);

上述2個步驟就可以了。


3.發送廣播


Intentintent=newIntent();

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setAction("com.scott.sayhi");

MyActivity.this.sendBroadcast(intent);

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction("com.scott.sayhi");
MyActivity.this.sendBroadcast(intent);


4.收聽開機廣播

intent-filter設置如下即可

<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>

安卓怎麼修改home鍵,使home鍵雙擊進後台(也就是像iPhone那樣)

直接裝軟體是實現不了的
首先你的手機必須root
其次安裝Xposed
最後安裝GravityBox或者XBlast等修改系統實體鍵功能就能滿足你的要求

純手打,認准gony出品

⑧ android 在fragment中怎麼監聽返回鍵,home鍵

home鍵觸發的時候系統會發送一個廣播,可以通過廣播來監(注冊)聽事件。可以使用動態注冊的廣播的方式來接收。

⑨ 如何在Android的service里進行按鍵的監聽

app中對於HOME鍵廣播事件的接收

首先,自定義一個BroadcastReceiver:

[java] view plain
class HomeKeyEventBroadCastReceiver extends BroadcastReceiver {

static final String SYSTEM_REASON = "reason";
static final String SYSTEM_HOME_KEY = "homekey";//home key
static final String SYSTEM_RECENT_APPS = "recentapps";//long home key

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
String reason = intent.getStringExtra(SYSTEM_REASON);
if (reason != null) {
if (reason.equals(SYSTEM_HOME_KEY)) {
// home key處理點

} else if (reason.equals(SYSTEM_RECENT_APPS)) {
// long home key處理點
}
}
}
}
}
其次,生成且注冊之
[java] view plain
receiver = new HomeKeyEventBroadCastReceiver();
registerReceiver(receiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
這樣,我們就可以在app中進行HOME鍵的處理了!

⑩ 安卓怎麼修改home鍵,使home鍵雙擊進後台(也就是像iPhone那樣)

這個不能修改的,只能這樣。

不過安卓可以安裝虛擬Home鍵。下載Easy Touch,功能和蘋果的AssistiveTouch一樣的功能,可以自定義相關的操作,可以很好的模擬實體的HOME鍵。在各大應用商城都可以下載。

在蘋果中按一次home鍵,返回主界面。雙擊home鍵,出現後台運行程序。長按home鍵,在iPhone 3GS(第三代)和iPhone4(第四代)中會開啟「語音控制」,在iPhone4S(第五代)、iPhone5(第六代)、第三代與第四代iPad中將會開啟Siri語音助手。按電源鍵3秒後,同時按住home鍵10秒,松開電源鍵,保持home鍵15秒,進入DFU模式(越獄用)。連按3下home鍵的功能可以自定義。

閱讀全文

與androidhome鍵廣播相關的資料

熱點內容
python操作zookeeper 瀏覽:705
蘋果手機dcim文件夾顯示不出來 瀏覽:430
如何壓縮文件夾聯想電腦 瀏覽:583
程序員的學習之旅 瀏覽:440
apkdb反編譯 瀏覽:922
雪花演算法為什麼要二進制 瀏覽:825
在文檔中打開命令行工具 瀏覽:608
android圖標尺寸規范 瀏覽:369
python實用工具 瀏覽:208
流量計pdf 瀏覽:936
科東加密認證價格 瀏覽:532
dos命令讀文件 瀏覽:996
成為程序員需要什麼學歷 瀏覽:672
pdf農葯 瀏覽:228
canal加密 瀏覽:497
日本安卓系統和中國有什麼區別 瀏覽:137
linux命令行修改文件 瀏覽:838
從編譯和解釋的角度看 瀏覽:649
徐志摩pdf 瀏覽:651
夏天解壓球視頻 瀏覽:304