android拒绝token过期的一种方法

时间:2023-02-08 15:14:45
    众所周知,android程序在另一台手机登陆时这是不允许的,所以就有了token的出现。问题来了,当你的token过期时,你需要关闭正在运行的所有activity,然后跳到登陆界面,但是我现在很有可能开了两个或以上的线程在请求数据,如果你你在每次请求数据返回token过期时都start一个新的activity的话,那你有可能会情动多个activity。
然后就想到了在登陆activity里面添加启动模式,lauchMode的singleInstance和singleTask,因为它们两个都是只容许activity,也就是单例,开始使用singleINstance,但是发现退出时会闪几下,因为singleInstance是将Activity压入一个新建的任务栈中。
后来用singleInstance发现可以,,因为 singleTask的Activity首次调用时会新开一个task。当singleTask Activity再次进入task(即将放入栈顶),则销毁其上的所有activity。singleTask模式的Activity不管是位于栈顶还是栈底,再次运行这个Activity时,都会destory掉它上面的Activity来保证整个栈中只有一个自己,切记切记。