导航:首页 > 操作系统 > 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键广播相关的资料

热点内容
程序员秃头图片 浏览:920
思科路由器命令手册 浏览:26
android获得当前activity 浏览:833
python入门迷宫 浏览:70
Python打折代码不含商品 浏览:220
把多个Word合成一个pdf 浏览:356
aes算法描述 浏览:899
新手机压缩包在哪 浏览:781
java抽奖程序源码 浏览:700
汽车压缩机又叫 浏览:95
android读取data文件 浏览:874
红旗智联app怎么跟h5车子连接 浏览:139
材料化学pdf 浏览:114
服务器机房都有什么东西 浏览:370
最近长阴短柱量能副图指标源码 浏览:647
python字符串去除后四位 浏览:167
捷速pdf编辑器破解版 浏览:726
大带宽服务器怎么租 浏览:299
篮球程序员单身难吗 浏览:877
一接到命令就 浏览:488