導航:首頁 > 操作系統 > 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鍵廣播相關的資料

熱點內容
robinhood加密交易條件 瀏覽:310
衛生間解壓方法 瀏覽:450
u盤如何做加密文件放照片 瀏覽:327
文件夾自己加了exe 瀏覽:256
小豬cms直播系統源碼 瀏覽:876
山東廣電雲伺服器 瀏覽:349
javadate與mysqldate 瀏覽:242
javalong比較 瀏覽:9
加密大師看不見加密文件 瀏覽:305
想做一個業余程序員 瀏覽:791
python選出行 瀏覽:247
cat命令windows 瀏覽:908
python算術游戲 瀏覽:530
常微分方程第二版pdf 瀏覽:23
phpJava學多久 瀏覽:722
php博客畢業設計 瀏覽:794
資料庫編程pdf 瀏覽:905
靜態文件伺服器騰訊雲 瀏覽:848
怎麼讓安卓手機運行蘋果軟體 瀏覽:116
共同好友的演算法 瀏覽:573