目标:完成Android版APP应用的退出登录

思路:将多个开启的Acitivity存放在List中,打开一个addList,关闭一个removeList,创建公用APPCompatActivity基类(在基类中完成活动add和remove,以及广播接收器的注册和取消),在点击“退出登录”按钮时,关闭所有开启的Activity,最后再启动LoginActivity.

下面是代码:

1,活动列表控制类

public class ActivityCollector {private ActivityCollector() {}private static List<Activity> actList = new ArrayList<>();public static void addActivity(Activity act) {actList.add(act);}public static void removeActivity(Activity act) {actList.remove(act);}public static void finishAll() {for (Activity act : actList) {if (!act.isFinishing()) {act.finish();}}}
}

2,AppCompatActivity的公共基类

public class BaseCompatActivity extends AppCompatActivity {protected LoginOutBroadcastReceiver locallReceiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 创建活动时,将其加入管理器中ActivityCollector.addActivity(this);}@Overrideprotected void onResume() {super.onResume();// 注册广播接收器IntentFilter intentFilter = new IntentFilter();intentFilter.addAction("com.gesoft.admin.loginout");locallReceiver = new LoginOutBroadcastReceiver();registerReceiver(locallReceiver, intentFilter);}@Overrideprotected void onPause() {super.onPause();// 取消注册广播接收器unregisterReceiver(locallReceiver);}@Overrideprotected void onDestroy() {super.onDestroy();// 销毁活动时,将其从管理器中移除ActivityCollector.removeActivity(this);}
}

3,退出接收器的实现

public class LoginOutBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {ActivityCollector.finishAll();  // 销毁所有活动Intent intent1 = new Intent(context, MainActivity.class);context.startActivity(intent1);}
}

4,退出按钮

    /*** 退出登录*/private void loginOut() {Intent intent = new Intent("com.gesoft.admin.loginout");sendBroadcast(intent);}

Android退出登录总结相关推荐

  1. Android 退出登录后回到登录页并清空原有的任务栈

    前言 最近被安排任务 需要开发一个平板业务app 在写到退出登录的时候 业务需求需要回到登录页并附带账号 这个业务比较简单 主要是 回到登录页并清空原有的任务栈 查阅谷歌官方文档 Intent.FLA ...

  2. android 退出登录通知到每个界面,文档中心 | QuickSDK——专业的手游第三方SDK接入服务平台,渠道SDK聚合,广告跟踪,客服,登录充值SDK...

    1.接入前项目检查(必接) 根据游戏接入后出现的问题,QuickSDK对游戏项目做以下几点要求: · AndroidManifest.xml中android:targetSdkVersion=&quo ...

  3. android 退出登录

    Intent intent2 = new Intent(this, LoginActivity.class); intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TA ...

  4. android 点击退出账号,Android应用退出登录的实现方法

    每一个app都会有一个"退出登陆"的功能,当点击退出之后需要将所有的Activity都finish掉,开始是想将栈中的所有Activity清除掉,但是没有找到方法,后来用广播实现了 ...

  5. 【Android项目实战 | 从零开始写app(十三)】实现用户中心模块清除token退出登录信息修改等功能

    五一后,被ji金伤了,哇呜呜,还是得苦逼老老实实打工写代码,看下面吧 本篇实现效果: 实现登录用户名展示到用户中心页面上,并且页面有个人信息,订单列表,修改密码,意见反馈发送到服务端,前面登录后,通过 ...

  6. android 点击退出账号,安卓退出登录功能

    退出登录功能基本上每个app都需要用到的我这里介绍一种使用广播退出登录 1.在退出登录的页面上发送一个广播 Intent intent =new Intent(); intent.setAction( ...

  7. Android SharedPreferences登录记住密码

    SharedPreferences是Android中存储简单数据的一个工具类.可以想象它是一个小小的Cookie,它通过用键值对的方式把简单 数据类型(boolean.int.float.long和S ...

  8. php换设备登录逻辑,登录和退出登录的操作逻辑

    登录功能的操作逻辑步骤如下:可以分为五个步骤来实现. 1.进入页面先判断用户是否已经登录 private void isLogin() { //查看本地是否有用户的登录信息 SharedPrefere ...

  9. UserInfoActivity用户图像修改和退出登录

    @OnClick(R.id.btn_user_logout) public void logout(View view){//"退出登录"button的回调方法//1.将保存在sp ...

  10. 微软edge如何退出登录_Microsoft Edge:评论

    微软edge如何退出登录 Microsoft has been doing the right things for several years. They engage with the commu ...

最新文章

  1. RSocket:又一个REST的挑战者
  2. RE validation in Java EE
  3. 什么是透明传输 点对多传输? 它们有哪些经典应用和优势特点
  4. 476 Number Complement
  5. java.lang.IllegalArgumentException: Could not resolve placeholder ‘stu.age‘ in value “${stu.age}
  6. 随想录(无均衡负载的smp os设计)
  7. 面向对象进阶(day7)
  8. PostgreSQL 11 preview - Faster partition pruning
  9. base64减少图片请求
  10. PostgreSQL数据保留窗口功能的使用
  11. 小米游戏本8代加装固态硬盘系统迁移
  12. javashop源码,javashop电商系统源码授权
  13. MAXON宣布任命高级领导人员
  14. 华为GaussDB数据库10个知识点,第7个你知道么?
  15. 电脑英语Computer English
  16. Stata 基础知识 1
  17. Google Earth Engine——从Python中的经纬度坐标获取Modis正弦图块网格位置
  18. C++ error C2059: 语法错误:“常数”
  19. 富芮坤蓝牙FR801xH开发环境搭建
  20. java72-GUL流式布局管理器

热门文章

  1. 美团杀熟?背后到底利用大数据做了些什么?
  2. 图像处理之LSB替换隐写算法的实现
  3. 恒凯USB数据采集卡在国产麒麟操作系统下的应用(二)Python环境设置及数据采集实验
  4. Android实现一个APP只能在一部手机上使用
  5. 快递行业面单打印解决方案-快宝云打印
  6. mysql 5.7 安装tokudb_安装Percona-Server-5.7.18+tokudb
  7. 华为电脑Linux进pe,华为笔记本(HuaWei)如何进入BIOS设置U盘启动?
  8. python制作日历_用Python制作一份你专属的爱豆日历
  9. 量化投资学习——行业轮动规律
  10. python查找excel中重复数据_python实现查找excel里某一列重复数据并且剔除后打印的方法...