Android编程心得---捕捉Home键事件的完美解决方法
16lz
2021-01-23
大家好,欢迎来到杜光的博客:http://blog.csdn.net/duguang77 (分享==快乐)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
之前看网上介绍捕捉Home键的方法:
在按键中KeyEvent.KEYCODE_BACK返回键是可以直接监听的,但Home键是在framework监听,那么监听Home的方法就是:第一:在Activity中加入,重写onAttachedToWindow,以实现屏蔽Home键.@Override public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); super.onAttachedToWindow(); }第二在按键监听中加入Home键处理代码。
但是这种方法在模拟器中是可以被捕捉到的,但是到真机上是不行的!!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
今天我给大家介绍一种简单又能捕获到Home键的方法:
大家都知道Back键和Home键的区别
按Back键会执行Activity中的Finish()方法,而按Home只是执行到Activity的onStop()为止,程序会切换到后台,重新调用程序后会执行onStart();方法
下面我就贴出Demo的代码,大家一看即明白
public class MainActivity extends Activity {private boolean isFinish;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initdata();}private void initdata() {isFinish = false;}@Overrideprotected void onStart() {Toast.makeText(this, "亲,短暂的失去你,我又回到了你的怀抱!", 1).show();super.onStart();}@Overrideprotected void onStop() {//isFinish = false; 则表明程序被切换到后台或按了home键//isFinish = true; 则表明程序被杀掉或者按下back键退出了if (!isFinish) {Toast.makeText(this, "亲,你按了Home键,不想要我了么!", 1).show();}super.onStop();}@Overridepublic void finish() {isFinish = true;super.finish();}}
备注:有些手机按Home键后不会执行onStop方法();
更多相关文章
- Android EditText过滤汉字的方法
- 显示Android当前可用系统内存方法
- Android Studio中添加自定义字体的方法
- Android Studio开发APP常用方法(一)
- android 发送http请求方法和异常解决方法
- 小程序之switch...case...break
- Android使用AsyncTask实现多线程下载的方法
- Android利用资源名称获取其id之getIdentifier()方法
- asynchttpclient的post方法发送json格式参数和表单格式参数