Android 2.2使用广播机制完全退出程序

昨天遇到个场景需要这样做,在网上找到了实现的帖子,方法如下:

基本思路

在你的每个Activity里,注册一个特定的Broadcast,当你想退出程序时,就send一个特定的Broadcast,这样所有还没有finish的activity都可以接收到这个broadcast,接收到broadcast后,就finish掉Activity。这样该程序的所有Activity就finish了,也就达到了退出程序的效果。

示例代码

实现过程中,为了优化程序,首先写一个父类继承Activity,其他的Activity都继承此父类(你也可以在每个Activity中实现其中的代码,不过相比这种有点麻烦),代码如下:

  1. import?android.app.Activity;
  2. import?android.content.BroadcastReceiver;
  3. import?android.content.Context;
  4. import?android.content.Intent;
  5. import?android.content.IntentFilter;
  6. public?class?ApplicationActivity?extends?Activity?{
  7. ????private?BroadcastReceiver?receiver?=?new?BroadcastReceiver()?{
  8. ????????@Override
  9. ????????public?void?onReceive(Context?context,?Intent?intent)?{
  10. ????????????finish();
  11. ????????}
  12. ????};
  13. ????@Override
  14. ????public?void?onResume()?{
  15. ????????super.onResume();
  16. ????????//?在当前的activity中注册广播
  17. ????????IntentFilter?filter?=?new?IntentFilter();
  18. ????????filter.addAction(“Exit”);
  19. ????????this.registerReceiver(this.receiver,?filter);
  20. ????}
  21. }

然后在需要退出的Activity中添加close方法,然后在要进行退出程序操作的地方调用close方法即可。代码如下:

  1. <pre?name=“code”?class=“java”>private?void?close()?{
  2. ????Intent?intent?=?new?Intent();
  3. ????intent.setAction(“ExitApp”);
  4. ????this.sendBroadcast(intent);
  5. ????super.finish();
  6. }

原文地址:http://www.linuxidc.com/Linux/2011-09/43635.htm

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据