通过广播关闭应用程序(每个Activity)和连续点击两次返回键关闭应用程序
来源:互联网 发布:淘宝买家秀链接在哪里 编辑:程序博客网 时间:2024/06/05 17:41
对于一个应用程序可能有很多个Activity,可能每个人并不想一个个的去关闭Activity,也有可能忘了,那怎么关闭所有的未关闭的Activity呢,其实有很多方法,但是我最喜欢的一种就是通过广播事件去关闭,这样简单易懂,方便操作,很快捷。
首先就是建立一个父类,让所有的activity继承父类,这样就不用每次都去注册广播,只要在父类注册好就行了,代码如下:
package net.loonggg.test;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;public class BaseActivity extends Activity {/** * 关闭Activity的广播,放在自定义的基类中,让其他的Activity继承这个Activity就行 */protected BroadcastReceiver finishAppReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {finish();}};@Overridepublic void onResume() {super.onResume();// 在当前的activity中注册广播IntentFilter filter = new IntentFilter();filter.addAction("net.loonggg.exitapp");this.registerReceiver(this.finishAppReceiver, filter);}@Overrideprotected void onDestroy() {super.onDestroy();this.unregisterReceiver(this.finishAppReceiver);}}其次就是子类继承,代码如下:
package net.loonggg.test;import android.content.Intent;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends BaseActivity {private Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = (Button) findViewById(R.id.btn);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(getApplicationContext(),SecondActivity.class);startActivity(intent);}});}private long exitTime = 0;@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (KeyEvent.KEYCODE_BACK == keyCode) {// 判断是否在两秒之内连续点击返回键,是则退出,否则不退出if (System.currentTimeMillis() - exitTime > 2000) {Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();// 将系统当前的时间赋值给exitTimeexitTime = System.currentTimeMillis();} else {exitApp();}return true;}return super.onKeyDown(keyCode, event);}/** * 退出应用程序的方法,发送退出程序的广播 */private void exitApp() {Intent intent = new Intent();intent.setAction("net.loonggg.exitapp");this.sendBroadcast(intent);}@Overrideprotected void onDestroy() {super.onDestroy();System.out.println("-------MainActivity-------->onDestroy()");}}其实不用多说,我相信大家代码肯定都看懂了,主要是思路,代码都是非常简单的基础的。那下边我再介绍连续点击两次返回键退出应用程序的方法,方法如下:
/** * 记录标记时间 */private long exitTime = 0;@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (KeyEvent.KEYCODE_BACK == keyCode) {// 判断是否在两秒之内连续点击返回键,是则退出,否则不退出if (System.currentTimeMillis() - exitTime > 2000) {Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();// 将系统当前的时间赋值给exitTimeexitTime = System.currentTimeMillis();} else {exitApp();}return true;}return super.onKeyDown(keyCode, event);}到这里就完了!非常简单吧!
1 0
- 通过广播关闭应用程序(每个Activity)和连续点击两次返回键关闭应用程序
- 通过广播关闭应用程序(每个Activity)和连续点击两次返回键关闭应用程序
- 通过广播关闭应用程序(每个Activity)和连续点击两次返回键关闭应用程序
- 通过广播关闭应用程序(每个Activity)和连续点击两次返回键关闭应用程序
- 关闭所有Activity和连续点击两次返回键关闭程序的方法
- 点击返回键两次关闭当前ACTIVITY
- 点击返回键关闭应用程序的步骤
- 关闭应用程序所有activity
- 连续点击返回键,退出应用程序
- android,连续点击两次back键退出应用程序
- Android 捕获返回键彻底关闭应用程序
- 彻底关闭应用程序 返回键的捕获
- Android-连续按两次返回键实现应用程序退出
- iOS 通过代码关闭应用程序
- iOS 通过代码关闭应用程序
- iOS 通过代码关闭应用程序
- iOS 通过代码关闭应用程序
- 关闭应用程序
- Codeforces round#224
- 一位软件工程师的6年总结
- centos lamp 环境搭建 Linux+Apache+Mysql/MariaDB+Perl/PHP/Python
- ThreadPoolExecutor使用介绍
- Qt5窗口设计
- 通过广播关闭应用程序(每个Activity)和连续点击两次返回键关闭应用程序
- Word2007 生成目录英文变成大写的解决办法
- windows下Qt Creator5.1.0编写程序以及调用OpenCV库
- hdu2002解题报告
- VS2010+QT5.1+opencv2.4.5图像界面第一个程序
- Maven: Could not get the value for parameter encoding for plugin execution default-resources Plugin
- (十一)Menu及其使用
- ArcGIS for Android 例子Offline Editor (BETA)(五)
- VBA for Word 学习笔记(一)