关于finish()结束活动

最近写《即时新闻》的时候,为了方便调试,在登录界面加了个离线登录按钮,然后在我的侧滑栏中有个退出按钮。发现在线登录后点击退出按钮可以完全退出app,并且杀掉线程。可是离线登录后点击退出按钮,还是回到了登录界面,找了好久,终于发现,原来是在离线登录跳转后没有用finish()方法结束掉登录界面,找出来的瞬间感觉真的是太简单的一个问题了,自己都觉得尴尬,可就是这么简单的一个问题也困扰了我快一周吧,所以一定要细心呀!



顺便记录一个知识点,关于结束app内所有活动的方法。

首先新建一个ActivityController类:

public class ActivityController extends AppCompatActivity {

    private static List<Activity> activityList = new ArrayList<>();

    public static void addActivity(Activity activity) {
        activityList.add(activity);
    }

    public static void removeActivity(Activity activity) {
        activityList.remove(activity);
    }

    public static void finishAll() {
        activityList.removeAll(activityList);
        for (Activity activity:activityList) {
            activity.finish();
        }
        activityList.clear();
    }
}

可以看到,这里我们可以看到,有对activity的增加、单个结束和结束全部的方法。

然后:新建基类活动BaseActivity继承于AppCompatActivity

public class BaseActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("BaseActivity", getClass().getSimpleName()+"启动");
        ActivityController.addActivity(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("BaseActivity", "活动销毁:"+getClass().getSimpleName());
        ActivityController.removeActivity(this);

    }
}

最后,我们只需要让自己的每一个activity都继承于BaseActivity,然后调用activityController里面的方法就行啦。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值