欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

android中实现完全退出程序方法(退出所有activity)

时间:2021-05-09 07:45:15|栏目:Android代码|点击:

这是一个很多很多人都 会遇到的问题,我也试过了很多方法,都不怎么好用。
比如:

复制代码 代码如下:

System.exit(0);

不行。
还有什么跳转到第一个activity,同时把栈顶的activity全部清除,最后再finish();还是不行。。不知道为什么。
这里是我自己的一个方法,效果非常好。
原理:在每个activity都注册一个广播接收器,用来接收关闭activity的广播。当需要退出程序的时候就发送一条关闭activity的广播,这样所有的activity都会接收到,然后所有activity都会自己finish了。

复制代码 代码如下:

package com.example.exitsystem;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;

/**
 * 所有activity都继承此类,同时也就等于注册了广播,
 * 当需要完全退出系统的时候就可以发送广播,
 * action为com.example.exitsystem.system_exit(自定义),
 * 这样就可以随时退出所有的activity了
 * @author LinZhiquan
 *
 */
public class SuperActivity extends Activity {
 /** 广播action */
 public static final String SYSTEM_EXIT = "com.example.exitsystem.system_exit";
 /** 接收器 */
 private MyReceiver receiver;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  
  //注册广播,用于退出程序
  IntentFilter filter = new IntentFilter();
  filter.addAction(SYSTEM_EXIT);
  receiver = new MyReceiver();
  this.registerReceiver(receiver, filter);
 }
 
 @Override
 protected void onDestroy() {
  //记得取消广播注册
  this.unregisterReceiver(receiver);
  super.onDestroy();
 }
 
 private class MyReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
   finish();
  }
 }
}


复制代码 代码如下:

package com.example.exitsystem;

import android.os.Bundle;

/**
 * 普通activity, 继承SuperActivity
 * @author LinZhiquan
 *
 */
public class MainActivity extends SuperActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}


需要退出程序的时候发送一条广播即可。

复制代码 代码如下:

        Intent intent = new Intent();
        intent.setAction(SuperActivity.SYSTEM_EXIT);
        sendBroadcast(intent);

上一篇:android webview获取html代码和根据id获取value实例

栏    目:Android代码

下一篇:Android实现背景可滑动登录界面 (不压缩背景弹出键盘)

本文标题:android中实现完全退出程序方法(退出所有activity)

本文地址:http://www.codeinn.net/misctech/117953.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有