昨天遇到个场景需要这样做,在网上找到了实现的帖子,方法如下:
基本思路
在你的每个Activity里,注册一个特定的Broadcast,当你想退出程序时,就send一个特定的Broadcast,这样所有还没有finish的activity都可以接收到这个broadcast,接收到broadcast后,就finish掉Activity。这样该程序的所有Activity就finish了,也就达到了退出程序的效果。
示例代码
实现过程中,为了优化程序,首先写一个父类继承Activity,其他的Activity都继承此父类(你也可以在每个Activity中实现其中的代码,不过相比这种有点麻烦),代码如下:
- import?android.app.Activity;
- import?android.content.BroadcastReceiver;
- import?android.content.Context;
- import?android.content.Intent;
- import?android.content.IntentFilter;
- public?class?ApplicationActivity?extends?Activity?{
- ????private?BroadcastReceiver?receiver?=?new?BroadcastReceiver()?{
- ????????@Override
- ????????public?void?onReceive(Context?context,?Intent?intent)?{
- ????????????finish();
- ????????}
- ????};
- ????@Override
- ????public?void?onResume()?{
- ????????super.onResume();
- ????????//?在当前的activity中注册广播
- ????????IntentFilter?filter?=?new?IntentFilter();
- ????????filter.addAction(“Exit”);
- ????????this.registerReceiver(this.receiver,?filter);
- ????}
- }
然后在需要退出的Activity中添加close方法,然后在要进行退出程序操作的地方调用close方法即可。代码如下:
- <pre?name=“code”?class=“java”>private?void?close()?{
- ????Intent?intent?=?new?Intent();
- ????intent.setAction(“ExitApp”);
- ????this.sendBroadcast(intent);
- ????super.finish();
- }
原文地址:http://www.linuxidc.com/Linux/2011-09/43635.htm