Android监听是否点击了home键或者锁屏键
2016-03-14 14:20
369 查看
不废话了,直接上代码:
import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); IntentFilter filter = new IntentFilter(); //锁屏广播,由系统发出 filter.addAction(Intent.ACTION_SCREEN_ON); //锁屏广播,由系统发出 filter.addAction(Intent.ACTION_SCREEN_OFF); //点击home键广播,由系统发出 filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); registerReceiver(homeAndLockReceiver, filter); } /** * 监听是否点击了home键将客户端推到后台 */ private BroadcastReceiver homeAndLockReceiver = new BroadcastReceiver() { String SYSTEM_REASON = "reason"; String SYSTEM_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_REASON); if (TextUtils.equals(reason, SYSTEM_HOME_KEY)) { //表示按了home键,程序到了后台 Toast.makeText(getApplicationContext(), "home", Toast.LENGTH_SHORT).show(); } } else if (action.equals(Intent.ACTION_SCREEN_ON)) { //屏幕亮了 Log.i("lock-", "--on"); } else if (action.equals(Intent.ACTION_SCREEN_OFF)) { //屏幕黑了 Log.i("lock-", "--off"); } } }; }
相关文章推荐
- android对多物理按键,方向键的支持
- Android 数据传递(二)Activity与fragment之间的通信
- Android键盘遮挡输入框的问题
- ToolBar的使用
- Android 启动模式详解
- android 音量调整
- 这应该是目前最系统的 Android 界面性能调优资料了
- 网易云捕--最全面的Android应用程序崩溃收集SDK
- Android控件第6类——杂项控件
- androidstudio导入library项目开源库
- android 获取当前版本号
- Android布局优化
- Android抽象布局——include、merge 、ViewStub
- Android中include标签的使用及注意事项
- Android内存泄漏终极解决篇
- 如何在mac本上安装android sdk
- ThreadLocal浅谈
- Android得到控件在屏幕中的坐标
- AndroidStudio配置SVN以及使用代码管理
- 活动的生存周期