ITPub博客

首页 > IT职业 > IT生活 > 一次关闭所有Activity和连续点击两次返回键关闭程序的方法

一次关闭所有Activity和连续点击两次返回键关闭程序的方法

IT生活 作者:lgchen 时间:2021-09-09 10:07:03 0 删除 编辑

最近有人问我怎么样一次关闭应用程序里所有的Activity的方法,有人说用队列存储的方式,关闭的时候,一个一个的取出再Finish掉。其实个人认为最好的方法就是通过广播的方式来进行。这样简单易懂,方便操作,很快捷。方法如下建立一个父类

首先就是建立一个父类,让所有的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() {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
};
@Override
public void onResume() {
super.onResume();
// 在当前的activity中注册广播
IntentFilter filter = new IntentFilter();
filter.addAction("net.loonggg.exitapp");
this.registerReceiver(this.finishAppReceiver, filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
this.unregisterReceiver(this.finishAppReceiver);
}
}

其次就是子类的继承,让每个Activity都去继承BaseActivity。


我相信这种思路大家都能看懂,现在我们再来讲一下连续点击两次返回键退出应用程序的方法。


方法如下



private long exitTime = 0;

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (KeyEvent.KEYCODE_BACK == keyCode) {

// 判断是否在两秒之内连续点击返回键,是则退出,否则不退出

if (System.currentTimeMillis() - exitTime > 2000) {

Toast.makeText(getApplicationContext(), "再按一次退出程序",

Toast.LENGTH_SHORT).show();

// 将系统当前的时间赋值给exitTime

exitTime = 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);
}

原文链接:http://www.apkbus.com/blog-47151-59334.html

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1276/viewspace-2816723/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    115
  • 访问量
    1026