android完全退出应用解决方案

本文介绍了一种使用singleTask启动模式结合透明Activity实现Android应用完全退出的方法。通过这种方式,可以确保应用的所有组件被彻底清理,避免残留后台进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android完全退出应用解决方案

在实际项目开发中,不知道大家会不会遇到不能完全退出应用的问题。网上也有很多答案,实际测试后没有发现比较好用的方法。再此做下记录,自己利用activity启动方式来实现完美退出应用的方法。

在这之前先简单介绍一下activity的启动模式。
Activity启动方式有四种,分别是:
standard
singleTop
singleTask
singleInstance
下面是这四种模式的作用:

standard
默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。

singleTop
可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。

singleTask
只有一个实例。在同一个应用程序中启动他的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activity destory掉并调用它的onNewIntent方法。
如果是在别的应用程序中启动它,则会新建一个task,并在该task中启动这个Activity,singleTask允许别的Activity与其在一个task中共存,也就是说,如果我在这个singleTask的实例中再打开新的Activity,这个新的Activity还是会在singleTask的实例的task中。

在这里我们要用到的是singleTask模式

这里写图片描述
当点击确定时,我们用singleTask启动模式跳转到一个新的透明activity

 /**跳转到一个透明的activity,同时销毁堆栈中所有的activity,
                 * 在LoginOutActivity中直接finish当前activity,达到完美退出应用效果*/
                Intent intent = new Intent(SettingActivity.this, LoginOutActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);

新的activoty中直接finish掉自己就行了。
LoginOutActivity.xml

package com.hanzgrp.apps.anmagic.ui.activity.member.settings;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class LoginOutActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        finish();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值