关闭

Android 退出app

标签: androidapp
89人阅读 评论(0) 收藏 举报
分类:

方法一:

代码如下:

int currentVersion = android.os.Build.VERSION.SDK_INT;
if (currentVersion > android.os.Build.VERSION_CODES.ECLAIR_MR1) {
    //  Android2.1以上
    Intent startMain = new Intent(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_HOME);
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(startMain);
    System.exit(0);
} else {
    //  Android2.1及以下
    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    am.restartPackage(getPackageName());
}

方法二:

注册广播,接收到消息后退出app

① 编写退出的广播

import android.app.Activity;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.FragmentActivity;

/**
 * Created by X on 2016/8/29.
 */
public class ExitAppReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (context != null) {
            if (context instanceof Activity) {
                //退出Activity
                ((Activity) context).finish();
            } else if (context instanceof FragmentActivity) {
                //退出FragmentActivity
                ((FragmentActivity) context).finish();
            } else if (context instanceof Service) {
                //退出Service
                ((Service) context).stopSelf();
            }
        }
    }
}

② 编写所有Activity的基类

import android.app.Activity;
import android.content.IntentFilter;
import android.os.Bundle;

/**
 * Created by X on 2016/8/29.
 */
public class BaseActivity extends Activity {

    private ExitAppReceiver exitReceiver = new ExitAppReceiver();
    //自定义退出应用Action,实际应用中应该放到整个应用的Constant类中.
    protected static final String EXIT_APP_ACTION = "com.qyx.exit_app";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        registerExitReceiver();
    }

    private void registerExitReceiver() {
        IntentFilter exitFilter = new IntentFilter();
        exitFilter.addAction(EXIT_APP_ACTION);
        registerReceiver(exitReceiver, exitFilter);
    }

    private void unRegisterExitReceiver() {
        unregisterReceiver(exitReceiver);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unRegisterExitReceiver();
    }

}

③ 发送广播,结束app

Intent intent = new Intent();
intent.setAction(EXIT_APP_ACTION);
sendBroadcast(intent);
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

关于app退出的问题,完美退出方式

实际开发中会有很多关于app的退出问题,我个人比较常见的有两种: 一、双击退出 比如说我们在首页的时候需要一个双击退出的方法,点击第一次手机的返回键时提示:“再点一次退出应用”。之类的话语,我们可以这样做,对重写onKeyDown方法,当他第一次点击的时候提示文字,给一个几秒的间隔,在这个时间段...
  • fzkf9225
  • fzkf9225
  • 2017-06-20 09:43
  • 2081

android 中back两种退出app的方法

连续点击退出app 思路:双击时间差小于某个定值触发事件 代码: public class MainActivity extends AppCompatActivity { private long lastTime=0; //记录上次点击的时间 @Override prote...
  • u013040819
  • u013040819
  • 2017-06-03 09:46
  • 635

如何真正的退出Android App

如何真正的退出Android App1.问题导入 笔者近期为了准备暑假的实习,在写项目,写项目的过程中遇到了一个莫名其妙的问题,检查到最后发现是“程序退出后”再次启动之后,原有的静态变量没有重新被初始化,也就是说进程并没有真正的被杀死。如果你定义一个变量,在逻辑中有增加的业务(初值为0,增加至1...
  • u014376020
  • u014376020
  • 2016-03-22 10:03
  • 3137

android 按两次返回键强制退出整个APP

首先介绍了android几组结束Activity和整个APP的方法及特点,然后给出了按两次返回键强制退出整个APP的代码。
  • Melody_ZQ
  • Melody_ZQ
  • 2016-07-31 16:26
  • 1520

Android---自定义异常退出并重启app的使用

自定义异常的退出,这里做的目的是如果自定义异常退出了,我们会得到什么,以及如何异常退出之后重启app,如果你有更好的想法可以一起交流。public class HKApplication extends Application {private List<Activity> activi...
  • Zadarrien_China
  • Zadarrien_China
  • 2016-12-08 11:19
  • 1302

android一键退出

在每个App中,基本都有退出提示,注意:这里不仅是一个弹出框,而是真正意义上的退出activity,这里带大家简单实现一下这个简单的功能吧~ 应用程序Activity管理类:用于Activity管理和应用程序退出 这个类适用于管理activity的 删除啊 添加啊 全部删除啊 这些的! ...
  • hao54216
  • hao54216
  • 2016-07-12 20:21
  • 1613

关于Android退出程序的问题(在主页面或任意页面退出App)

Android退出App时,个人觉得比较好用的方法 1.以广播的方式 2.在自定义Appication中管理所有的Activity 注意:在写Android退出App时,要注意是在App的主页面退出,还是任意页面退出,不要盲目的进行编码。 如点击App的“退出”按钮,页面跳转到登录页面...
  • SunFlower_12
  • SunFlower_12
  • 2016-11-23 15:29
  • 2615

Android中判断app何时启动和关闭的技术研究

Android开发中不可避免的会遇到需要检查app何时进入前台,何时被用户关闭。奇怪的是,要达到这个目的并不容易。检查app第一次启动并不难,但要判断它何时重新打开和关闭就没有那么简单了。 这篇文章将介绍一种判断app打开,重新打开和关闭的技术。
  • ACE1985
  • ACE1985
  • 2015-04-23 10:53
  • 11179

Android App退出检测

app的退出检测是很难的,但是获取app“要退出”的状态就容易多了,退出的瞬间并不是真的退出了,ActivityManager要销毁activity,也需要一些时间和资源的。 先见下面的运行效果: gif做的比价粗啊, 两个activity的界面就不介绍了,主要是在APP启动的时候开启一个服务...
  • minwenping
  • minwenping
  • 2017-03-20 20:05
  • 1693

Android实现App会话超时退出设计

这里要考虑3个问题,第一个是锁屏问题,第二个是app被切换至后台的问题,第三个是屏幕锁定和解除时app在后台时的问题 一,监听屏幕解锁,锁定 ? 1 2 3 4 5 6 7 8 9 10 ...
  • u010963246
  • u010963246
  • 2016-04-11 16:22
  • 1190
    个人资料
    • 访问:14473次
    • 积分:472
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条
    文章分类